chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CW32L083系列MCU中斷系統(tǒng)介紹

武漢芯源半導(dǎo)體有限公司 ? 2022-12-01 11:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文針對(duì)CW32L083系列MCU,同系列產(chǎn)品亦可參考。

ARM? Cortex?-M0+ 內(nèi)核的嵌套向量中斷控制器 (NVIC),用于管理中斷和異常。NVIC和處理器內(nèi)核緊密相連,可以實(shí)現(xiàn)低延遲的異常和中斷處理。處理器支持最多32個(gè)中斷請(qǐng)求 (IRQ)輸入,支持多個(gè)內(nèi)部異常。

主要特性

? 16個(gè)內(nèi)部異常

? 32個(gè)可屏蔽外部中斷

? 4個(gè)可編程的優(yōu)先級(jí)

? 低延時(shí)的異常和中斷處理

? 支持中斷嵌套

? 中斷向量表重映射

本文介紹了處理器的 32 個(gè)外部中斷請(qǐng)求(IRQ0 ~ IRQ31),處理器內(nèi)部異常的具體情況請(qǐng)參考“ARM? Cortex?-M0+Technical Reference Manual”與“ARM? v6-M Architecture Reference Manual”。

中斷優(yōu)先級(jí)

外部中斷可設(shè)置 4 級(jí)優(yōu)先級(jí),最高優(yōu)先級(jí)為“0”,最低優(yōu)先級(jí)為“3”,默認(rèn)值為“0”。當(dāng)處理器正在執(zhí)行一個(gè)中斷處理程序時(shí),如果出現(xiàn)一個(gè)更高優(yōu)先級(jí)的中斷,那么這個(gè)中斷就被搶占。如果出現(xiàn)的中斷的優(yōu)先級(jí)和正在處理的中斷的優(yōu)先級(jí)相同或更低,這個(gè)中斷就不會(huì)被搶占,但是新中斷的狀態(tài)就變?yōu)閽炱?。如果多個(gè)掛起的中斷具有相同的優(yōu)先級(jí),中斷編號(hào)越小的掛起中斷優(yōu)先處理。例如,如果IRQ[0]和IRQ[1]均掛起時(shí),并且兩者的優(yōu)先級(jí)相同,那么先處理 IRQ[0]。

中斷向量表

ARM? Cortex?-M0+ 響應(yīng)中斷時(shí),處理器自動(dòng)從存儲(chǔ)器的中斷向量表中取出中斷服務(wù)程序 ( ISR )的起始地址。中斷向量表包括主棧指針(MSP)的初始值,內(nèi)部異常和外部中斷的服務(wù)程序入口地址。每個(gè)中斷向量占用1個(gè)字(4 字節(jié)),中斷向量的存儲(chǔ)地址為向量編號(hào)乘以4,下面的是CW32L083的中斷向量表。

poYBAGOIEV2AK-UNAAQzkx5eI0c521.jpg

poYBAGOIEV2AUzSpAAN5f_QXg4g519.jpg

CW32L083由于部分外設(shè)的中斷復(fù)用一個(gè)IRQ中斷源,在中斷服務(wù)程序中應(yīng)先檢查中斷標(biāo)志位,以確定產(chǎn)生中斷的外設(shè)。NMI在CW32L083中未使用。HSE 、LSE 時(shí)鐘信號(hào)起振失敗和 LSI、LSE、HSIOSC、HSE、PLL 時(shí)鐘信號(hào)穩(wěn)定對(duì)應(yīng) RCC 全局中斷。HSE 或 LSE 時(shí)鐘信號(hào)在運(yùn)行中失效對(duì)應(yīng) FAULT 中斷。

中斷寄存器的相關(guān)配置

1.中斷的使能、掛起、清除掛起

ARM? Cortex-M0+處理器支持最多32個(gè)外部中斷源,分別對(duì)應(yīng)中斷使能設(shè)置寄存器NIVC_ISER的32個(gè)使能位,和中斷使能清除寄存器NVIC_ICER的32個(gè)禁止位。將使能位置1,允許中斷;將禁止位置1,禁止中斷。上文中NVIC中斷使能僅針對(duì)處理器 NVIC而言,外設(shè)的中斷是否使能,還受相應(yīng)外設(shè)的中斷控制寄存器控制。

而在中斷發(fā)生的時(shí)候,如果系統(tǒng)正在處理相同優(yōu)先級(jí)的或者更高優(yōu)先級(jí)的中斷,系統(tǒng)將不會(huì)立馬的處理這個(gè)中斷,而是將這個(gè)中斷的狀態(tài)設(shè)置為掛起,保存在中斷掛起狀態(tài)寄存器中,在處理器未進(jìn)去此中斷處理之前,如果沒(méi)有手動(dòng)清除掛起狀態(tài),這個(gè)狀態(tài)會(huì)一直有效,等處理器進(jìn)入中斷處理的時(shí)候,硬件會(huì)自動(dòng)清除相應(yīng)的中斷掛起狀態(tài)。也可以通過(guò)設(shè)置中斷掛起設(shè)置寄存器NVIC_ISPR的對(duì)應(yīng)位,將此中斷的狀態(tài)設(shè)置為掛起狀態(tài),如果系統(tǒng)沒(méi)有正在處理與之相同優(yōu)先級(jí)或更高優(yōu)先級(jí)的中斷,此中斷將被立即響應(yīng)并處理。可以通過(guò)設(shè)置中斷掛起清除寄存器NVIC_ICPR的對(duì)應(yīng)位,將此中斷的狀態(tài)設(shè)置為掛起清除狀態(tài)。

2.中斷的優(yōu)先級(jí)、中斷屏蔽

中斷優(yōu)先級(jí)控制寄存器NVIC_IPR0 ~ NVIC_IPR7,用于設(shè)置IRQ0~IRQ31 的中斷優(yōu)先級(jí),每個(gè)中斷源使用8位,在CW32L083中僅使用了高兩位,最多可設(shè)置4個(gè)中斷優(yōu)先級(jí)。

在某些特殊場(chǎng)合,需要禁止所有中斷,可以使用中斷屏蔽寄存器PRIMASK實(shí)現(xiàn)。PRIMASK只有最低1位有效,將此位置1,除了NMI和硬件錯(cuò)誤異常之外的所有外部中斷和異常都被禁止;清0后,允許響應(yīng)中斷和異常。該位復(fù)位后默認(rèn)為0。

按鍵中斷檢測(cè)實(shí)驗(yàn)分析

以CW32L083評(píng)估板為例,按鍵連接至CW32L083的PA4、PA5端口,LED連接至PC2、PC3接口。按鍵按下將產(chǎn)生中斷,在中斷服務(wù)程序中進(jìn)行LED翻轉(zhuǎn)。

int32_t main(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA的配置時(shí)鐘 __RCC_GPIOC_CLK_ENABLE(); // 使能GPIOC的配置時(shí)鐘 //按鍵GPIO初始化 GPIO_InitStruct.IT = GPIO_IT_RISING | GPIO_IT_FALLING; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pins =GPIO_PIN_4 | GPIO_PIN_5; GPIO_Init(CW_GPIOA, &GPIO_InitStruct); //LED的GPIO初始化 GPIO_InitStruct.IT = GPIO_IT_NONE; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pins =GPIO_PIN_2 | GPIO_PIN_3; GPIO_Init(CW_GPIOC, &GPIO_InitStruct); //配置中斷濾波 GPIO_ConfigFilter(CW_GPIOA, bv4, GPIO_FLTCLK_RC150K); //清除PA4、PA5中斷標(biāo)志并使能NVIC GPIOA_INTFLAG_CLR(bv4| bv5); NVIC_EnableIRQ(GPIOA_IRQn); __enable_irq(); //---------------------------------------------------------------------- //相關(guān)程序在中斷服務(wù)GPIOA_IRQHandler中進(jìn)行處理 while (1) { } } //GPIOA的中斷服務(wù)函數(shù) void GPIOA_IRQHandlerCallback(void) { if (CW_GPIOA->ISR_f.PIN4) { GPIOA_INTFLAG_CLR(bv4);清除PA04的中斷標(biāo)志位 PC03_TOG(); } if (CW_GPIOA->ISR_f.PIN5) { GPIOA_INTFLAG_CLR(bv5);//清除PA05的中斷標(biāo)志位 PC02_TOG(); } }

由上面代碼可以看到,如果按下KEY1(PA04),LED1(PC03)的狀態(tài)會(huì)翻轉(zhuǎn),如果松開(kāi)按鍵,LED1又會(huì)翻轉(zhuǎn)一次。在每次執(zhí)行中斷函數(shù)的時(shí)候,需要清除中斷標(biāo)志位即GPIOA_INTFLAG_CLR(bv4)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    8249

    瀏覽量

    162371
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6074

    文章

    45340

    瀏覽量

    663525
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18605

    瀏覽量

    387027
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CW32 MCU在高頻率運(yùn)行下的系統(tǒng)穩(wěn)定性的提升方案

    問(wèn)題,并提出一系列應(yīng)對(duì)措施,包括硬件設(shè)計(jì)改進(jìn)和軟件優(yōu)化策略,以確保系統(tǒng)在高頻工作環(huán)境中的可靠性和持續(xù)穩(wěn)定運(yùn)行。 具體內(nèi)容包括: 高頻運(yùn)行對(duì)MCU的影響分析: 探討CW32
    發(fā)表于 12-04 08:04

    CW32單片機(jī)在智能馬桶的應(yīng)用

    64MHz的ARM? Cortex?-M0+ 內(nèi)核、最多256KB FLASH 、最多 24KBRAM、最多87路GPIO,以及一系列增強(qiáng)型外設(shè)。 CW32L083系列產(chǎn)品優(yōu)勢(shì)介紹 1
    發(fā)表于 12-04 08:01

    請(qǐng)問(wèn)一下,CW32L083VCT6的DeepSleep模式下,功耗一般在多少?

    請(qǐng)問(wèn)一下,CW32L083VCT6的DeepSleep模式下,功耗一般在多少?
    發(fā)表于 12-03 06:14

    CW32定時(shí)器及中斷介紹

    可以由硬件自 動(dòng)執(zhí)行觸發(fā)信號(hào)的濾波操作,還能令觸發(fā)事件產(chǎn)生中斷和 DMA 請(qǐng)求。 低功耗定時(shí)器:CW32L083 內(nèi)部集成 1 個(gè) 16 位低功耗定時(shí)器(LPTIM),可以以很低的功耗實(shí)現(xiàn)定時(shí)或?qū)ν?/div>
    發(fā)表于 12-01 07:08

    GCC開(kāi)發(fā)工程的模版

    1、拷貝一份工程,另存為cw32l083_gcc,并用vscode打開(kāi)。 2、到官網(wǎng)下載cw32l083的固件庫(kù)。 3、把cw32l083-stdperiph-lib/Libraries下面的固件
    發(fā)表于 11-28 08:15

    CW32L系列MCU的應(yīng)用領(lǐng)域

    CW32L系列MCU憑借其低功耗、高性能、豐富的外設(shè)接口以及強(qiáng)大的安全性能,廣泛應(yīng)用于以下領(lǐng)域: 消費(fèi)電子:如智能手機(jī)、平板電腦、智能手表等便攜式設(shè)備。 智能家居:如智能插座、智能燈泡、智能門鎖等
    發(fā)表于 11-25 07:22

    CW32L083有哪些應(yīng)用場(chǎng)景?

    CW32L083有哪些應(yīng)用場(chǎng)景
    發(fā)表于 11-24 07:37

    CW32單片機(jī)UART低功耗模式的介紹

    介紹 1.CW32L083工作模式 CW32L083 支持三種工作模式,由內(nèi)嵌的電源管理模塊自動(dòng)完成電源的統(tǒng)一管理。三種工作模式是: ? 運(yùn)行模式(Active mode) ? 休眠模式
    發(fā)表于 11-19 06:08

    CW32 MCU有哪些系列?

    目前CW32 MCU有通用高性能MCU、安全低功耗MCU、無(wú)線射頻MCU等3個(gè)系列。其中射頻
    發(fā)表于 11-12 07:34

    CW32 UART低功耗模式詳解

    介紹 1.CW32L083工作模式 CW32L083 支持三種工作模式,由內(nèi)嵌的電源管理模塊自動(dòng)完成電源的統(tǒng)一管理。三種工作模式是: ? 運(yùn)行模式(Active mode) ? 休眠模式
    發(fā)表于 11-12 07:24

    CW32L010系列的特點(diǎn)

    CW32L010系列MCU采用了獨(dú)特的工藝制程,使其待機(jī)電流降低至僅3uA,這在高溫環(huán)境下也表現(xiàn)得尤為出色,漏電僅為競(jìng)品平均水平的四分之一到八分之一。此外,我們還全新設(shè)計(jì)了高級(jí)定時(shí)器,不僅兼容G4
    發(fā)表于 11-12 06:51

    CW32 MCU的工作電壓、工作溫度是多少?

    32F003、CW32F002等,其工作溫度為-40℃~105℃,其余系列,比如:CW32L083、CW32L031等低功耗系列,以及
    發(fā)表于 11-12 06:49

    CW32 MCU最低功耗能做到多少?

    CW32L系列,比如:CW32L083、CW32L031在深度休眠模式下,電流可低至600nA以下,CW32L010則可低至0.3uA;其它
    發(fā)表于 11-12 06:24

    CW32L系列低功耗MCU的Vcore管腳如何使用?

    CW32L系列低功耗MCU的Vcore管腳,是MCU內(nèi)部集成的穩(wěn)壓器供電輸出,必須外接 1μF電容到地,且僅限內(nèi)部電路使用。Vcore的典型電壓值為1.5V,注意:千萬(wàn)不能將其連接到
    發(fā)表于 11-12 06:21

    CW32L01x系列MCU驅(qū)動(dòng)TFT屏的應(yīng)用方案

    CW32L01x系列MCU應(yīng)用廣泛,本文將詳細(xì)介紹CW32L01x系列
    的頭像 發(fā)表于 10-14 10:18 ?839次閱讀
    <b class='flag-5'>CW32L</b>01x<b class='flag-5'>系列</b><b class='flag-5'>MCU</b>驅(qū)動(dòng)TFT屏的應(yīng)用方案