STM32之外部中斷EXTI

STM32之外部中斷EXTI

ID:38223050

大?。?47.50 KB

頁數(shù):3頁

時(shí)間:2019-05-28

STM32之外部中斷EXTI_第1頁
STM32之外部中斷EXTI_第2頁
STM32之外部中斷EXTI_第3頁
資源描述:

《STM32之外部中斷EXTI》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、STM32之外部中斷EXTISTM32中斷控制線支持19個(gè)外部中斷/事件請求,每個(gè)中斷都有對應(yīng)狀態(tài)位和獨(dú)立的觸發(fā)與屏蔽設(shè)置。STM32F103的19個(gè)外部中斷為:線0-15:對應(yīng)GPIO口的輸入中斷。線16:連接到PVD輸出(掉電檢測,掉電時(shí)可立即保存重要數(shù)據(jù)作用)。線17:連接RTC鬧鐘事件。線18:連接到USB喚醒事件。每個(gè)IO口都可作為外部中斷輸入口的STM32的IO口遠(yuǎn)多于16個(gè),而IO口使用的中斷線只有16個(gè)。為此,GPIO管腳GPIOx.0~GPIOx.15(X=A,F,G)分別對應(yīng)中斷線0-15.這樣每個(gè)中斷線對應(yīng)了7個(gè)IO口。如線

2、0對應(yīng)著GPIOA.0,GPIOB.0,GPIOC.0,GPIOD.0,GPIOE.0,GPIOF.0,GPIOG.0但是每個(gè)中斷線每次只能連接到1個(gè)IO口上。這樣就需要通過相關(guān)的配置來決定對應(yīng)的中斷線被配置到哪個(gè)GPIO上了。GPIO和中斷線的映射關(guān)系如下圖:GPIO與中斷映射配置通過函數(shù)來實(shí)現(xiàn)voidGPIO_EXTILineConfig(uint8_t?GPIO_PortSource,uint8_t?GPIO_PinSource?)例如:GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSou

3、rce2);即外部中斷線2就和GPIOE映射起來了,顯然是GPIOE.2與EXTI2中斷線連接起來了。接著需設(shè)置中斷觸發(fā)方式:voidEXTI_Init(EXTI_InitTypeDef*?EXTI_InitStruct)例如:EXTI_InitTypeDefEXTI_InitStructure;EXTI_InitStructure.EXTI_Line=EXTI_Line4;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_T

4、rigger_Falling;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);以上例子設(shè)置了中斷線line4的中斷為下降沿觸發(fā)。設(shè)置好了中斷線和GPIO的映射關(guān)系,然后又設(shè)置好了中斷的觸發(fā)模式等參數(shù)。既然是外部中斷,設(shè)計(jì)到中斷我們當(dāng)然需要設(shè)置NVCI的中斷優(yōu)先級。配置完中斷優(yōu)先級后,接著是編寫中斷服務(wù)函數(shù)。中斷服務(wù)函數(shù)名字在MDK中事先有定義。但是不得不提的是,STM32的IO口外部中斷只有6個(gè),分別是:EXPORTEXT0_IRQHandleEXPORT

5、-----------------------中斷線0對應(yīng)的中斷函數(shù)EXT1_IRQHandleEXPORT-----------------------中斷線1對應(yīng)的中斷函數(shù)EXT2_IRQHandleEXPORT-----------------------中斷線2對應(yīng)的中斷函數(shù)EXT3_IRQHandleEXPORT-----------------------中斷線3對應(yīng)的中斷函數(shù)EXT4_IRQHandleEXPORT-----------------------中斷線4對應(yīng)的中斷函數(shù)EXT9_5_IRQHandleEXPORT----

6、--------------------中斷線5-9對應(yīng)的中斷函數(shù)EXT15_10_IRQHandle--------------------------------中斷線10-15共用的中斷函數(shù)編寫中斷服務(wù)函數(shù)經(jīng)常需要使用兩個(gè)函數(shù)。第一個(gè)是判斷某個(gè)中斷線上的中斷是否發(fā)生(即標(biāo)志位是否置位):ITStatusEXTI_GetITStatus(uint32_tEXTI_line);//放在中斷服務(wù)函數(shù)開頭,監(jiān)測中斷標(biāo)志位第二個(gè)是清除某個(gè)中斷線上的中斷標(biāo)志位(即清除標(biāo)志位):voidEXTI_ClearITPendingBit(uint32_tEXT

7、I_Line);//放在函數(shù)的結(jié)尾常用外部中斷服務(wù)函數(shù)的格式://格式一voidEXTI3_IRQHandler(void){If(EXTI_GetITStatus(EXTI_Line3)!-=RESET)//判斷是否置位{Dosomething();//執(zhí)行中斷事件EXTI_ClearITPendingBit(EXTI_Line3);//清零LINE上標(biāo)志位}}//========================================================//格式二voidEXTI3_IRQHandler(void){If(

8、EXTI_GetFlagStatus(EXTI_Line3)!-=RESET)//判斷是否置位{Dosomething();//執(zhí)行中斷

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。