上節(jié)回顧
STM32 | 庫函數(shù)與寄存器開發(fā)區(qū)別及LED等和按鍵源碼(第三天) |
一、?中斷
中斷概念
中斷是指計算機運行過程中,出現(xiàn)某些意外情況需主機干預(yù)時,機器能自動停止正在運行的程序并轉(zhuǎn)入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續(xù)運行(面試題)。
STM32外部中斷需要注重知識點EXTI與NVIC,STM32所有引腳均可以做為外部中斷。
4.1、外部中斷/事件控制器?(EXTI)
EXTI?控制器的主要特性如下:
●?每個中斷/事件線上都具有獨立的觸發(fā)和屏蔽
●?每個中斷線都具有專用的狀態(tài)位
●?支持多達?23?個軟件事件/中斷請求
●?檢測脈沖寬度低于?APB2?時鐘寬度的外部信號。有關(guān)此參數(shù)的詳細信息,請參見
STM32F4xx?數(shù)據(jù)手冊的電氣特性部分。
引腳中斷線
上升沿:數(shù)字電路中,數(shù)字電平從低電平(數(shù)字“0”)變?yōu)楦唠娖剑〝?shù)字“1”)的那一瞬間(時刻)叫作上升沿。
下降沿:數(shù)字電路中,數(shù)字電平從高電平(數(shù)字“1”)變?yōu)榈碗娖剑〝?shù)字“0”)的那一瞬間叫作下降沿。
4.2 NVIC
嵌套向量中斷控制器 (NVIC)
NVIC?特性
嵌套向量中斷控制器?NVIC?包含以下特性:
●?STM32F405xx/07xx?和?STM32F415xx/17xx?具有?82?個可屏蔽中斷通道,?STM32F42xxx
和?STM32F43xxx?具有多達?86?個可屏蔽中斷通道(不包括?Cortex?-M4F?的?16?根中
斷線)
●?16?個可編程優(yōu)先級(使用了?4?位中斷優(yōu)先級)
●?低延遲異常和中斷處理
●?電源管理控制
●?系統(tǒng)控制寄存器的實現(xiàn)
嵌套向量中斷控制器?(NVIC)?和處理器內(nèi)核接口緊密配合,可以實現(xiàn)低延遲的中斷處理和晚
到中斷的高效處理。
NVIC優(yōu)先級分為搶占優(yōu)先級與響應(yīng)優(yōu)先級。
數(shù)字越小,優(yōu)先級別越高
優(yōu)先級分組
搶占優(yōu)先級?&?響應(yīng)優(yōu)先級區(qū)別:??搶占優(yōu)先級?>?響應(yīng)優(yōu)先級
-
高優(yōu)先級的搶占優(yōu)先級是可以打斷正在進行的低搶占優(yōu)先級中斷的。
-
搶占優(yōu)先級相同的中斷,高響應(yīng)優(yōu)先級不可以打斷低響應(yīng)優(yōu)先級的中斷。
-
搶占優(yōu)先級相同的中斷,當(dāng)兩個中斷同時發(fā)生的情況下,哪個響應(yīng)優(yōu)先級高,哪個先執(zhí)行。
-
如果兩個中斷的搶占優(yōu)先級和響應(yīng)優(yōu)先級都是一樣的話,則看哪個中斷先發(fā)生就先執(zhí)行;
例:
假定設(shè)置中斷優(yōu)先級組為2,然后設(shè)置中斷3(RTC中斷)的搶占優(yōu)先級為2,響應(yīng)優(yōu)先級為1。中斷6(外部中斷0)的搶占優(yōu)先級為3,響應(yīng)優(yōu)先級為0。中斷7(外部中斷1)的搶占優(yōu)先級為2,響應(yīng)優(yōu)先級為0。
中斷7>中斷3>中斷6。
4.3外部中斷配置流程
外部中斷配置流程要添加的庫函數(shù):stm32f4xx_exti.c和stm32f4xx_syscfg.c
參考庫函數(shù)案例
1、理解按鍵原理
KEY0?連接PA0,選擇下降沿觸發(fā)
2、設(shè)置NVIC分組
void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
3、使能SYSCFG及GPIOA時鐘:?
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
4、 初始化IO口為輸入。
GPIO_Init();
5、設(shè)置IO口與中斷線的映射關(guān)系。
void SYSCFG_EXTILineConfig();
6、初始化線上中斷,設(shè)置觸發(fā)條件等。
EXTI_Init();
7、配置中斷分組(NVIC),并使能中斷。
NVIC_Init();
8、 編寫中斷服務(wù)函數(shù)。文章來源:http://www.zghlxwxcb.cn/news/detail-840865.html
EXTIx_IRQHandler();
9、清除中斷標志位文章來源地址http://www.zghlxwxcb.cn/news/detail-840865.html
EXTI_ClearITPendingBit();
五、
到了這里,關(guān)于STM32 | STM32F407ZE中斷、按鍵、燈(續(xù)第三天)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!