版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
模塊4外部中斷/事件控制器EXTI項(xiàng)目4電子門鈴之按鍵中斷主要內(nèi)容和學(xué)習(xí)重點(diǎn)項(xiàng)目4:電子門鈴之按鍵中斷知識(shí)準(zhǔn)備STM32F1系列MCU的中斷區(qū)分異常與中斷GPIOEXTI外部中斷/事件控制器區(qū)分中斷觸發(fā)與事件觸發(fā)項(xiàng)目實(shí)施電子門鈴之按鍵中斷:基于M3主控模塊電子門鈴之按鍵中斷:基于Proteus仿真項(xiàng)目實(shí)施(續(xù))習(xí)題項(xiàng)目探究EXTI初始化EXTI中斷處理——重點(diǎn)知識(shí)拓展STM32啟動(dòng)程序EXTI功能解讀模塊小結(jié)制作者或logo目錄2知識(shí)準(zhǔn)備:STM32F1系列MCU的中斷異常和中斷所有能打斷正常執(zhí)行流的事件都稱為異常。STM32的異常是指由于CPU內(nèi)部事件所引起的打斷,如程序出錯(cuò)、服務(wù)調(diào)用等;中斷是指由于CPU外部的設(shè)備的事件引起的打斷,如串口接收中斷、打印機(jī)中斷等。STM32F10xxx的非互聯(lián)型產(chǎn)品提供10個(gè)異常和60個(gè)可屏蔽的中斷通道請(qǐng)查閱參考手冊(cè)”表55其它STM32F10xxx產(chǎn)品(小容量、中容量和大容量)的向量表”
除了個(gè)別異常的優(yōu)先級(jí)為固定,其他的異常和中斷都可設(shè)置優(yōu)先級(jí)Cortex-M3支持(11+5保留)的異常和最多240個(gè)中斷制作者或logo項(xiàng)目4:電子門鈴3—中斷服務(wù)程序的入口地址中斷屏蔽、中斷使能、中斷請(qǐng)求、中斷響應(yīng)、中斷嵌套、中斷掛起中斷向量知識(shí)準(zhǔn)備:STM32F1系列MCU的中斷嵌套向量中斷控制器NVICNestedVectoredInterruptControllerNVIC是Cortex-M3的一個(gè)外設(shè),用于管理中斷、電源等功能。Cortex-M3使用8位的寄存器用于設(shè)置中斷的優(yōu)先級(jí)別,理論上可以設(shè)置256級(jí)。STM32的NVICIPR只使用其中的4位來區(qū)分優(yōu)先級(jí)別,這4個(gè)bit又被分成搶占優(yōu)先級(jí)和子優(yōu)先級(jí),其各自所占位數(shù)由寄存器SCB_AIRCR的[位8:位10]的值決定。制作者或logo項(xiàng)目4:電子門鈴4——中文參考手冊(cè)知識(shí)準(zhǔn)備:STM32F1系列MCU的中斷STM32使用4位來區(qū)分優(yōu)先級(jí)別,這4個(gè)bit又被分成搶占優(yōu)先級(jí)和子優(yōu)先級(jí),其各自所占位數(shù)由寄存器SCB_AIRCR的[位8:位10]的值決定。所有4位-搶占(組)優(yōu)先級(jí)-STM32CubeMX默認(rèn)項(xiàng)高3位-搶占(組)優(yōu)先級(jí),低1位-子優(yōu)先級(jí)高2位-搶占(組)優(yōu)先級(jí),低2位-子優(yōu)先級(jí)高1位-搶占(組)優(yōu)先級(jí),低3位-子優(yōu)先級(jí)所有4位-子優(yōu)先級(jí)只有搶占優(yōu)先級(jí)高的中斷能夠打斷搶占優(yōu)先級(jí)低的中斷,子優(yōu)先級(jí)只決定響應(yīng)順序!如果搶占優(yōu)先級(jí)和子優(yōu)先級(jí)都相同,就按向量表的優(yōu)先級(jí)制作者或logo項(xiàng)目4:電子門鈴5知識(shí)準(zhǔn)備:STM32F1系列MCU的中斷–NVIC優(yōu)先級(jí)別的設(shè)置↙在STM32CUBEMX中設(shè)置NVIC優(yōu)先級(jí)別數(shù)值越小,優(yōu)先級(jí)別越高制作者或logo項(xiàng)目4:電子門鈴6摘自《STM32F10xxxCortex-M3編程手冊(cè)》↓↑下載自/resource/en/programming_manual/cd00228163-stm32f10xxx-20xxx-21xxx-l1xxxx-cortex-m3-programming-manual-stmicroelectronics.pdf摘自STM32CUBEMX↓
知識(shí)準(zhǔn)備:
GPIOEXTI外部中斷/事件控制器STM32F1系列微控制器所有端口都有外部中斷能力;為了使用外部中斷線,端口必須配置成輸入模式;——中文參考手冊(cè)8.1.3STM32F1系列大、中、小容量微控制器的外部中斷/事件控制器由19個(gè)能產(chǎn)生事件/中斷請(qǐng)求的邊沿檢測(cè)器組成中斷和事件中斷通常用于由ARM內(nèi)核(NVIC、中斷處理程序等)執(zhí)行幾行代碼;事件不需要執(zhí)行代碼,但可以通知另一個(gè)外圍設(shè)備在沒有CPU干預(yù)的情況下執(zhí)行某些操作。例如,外部中斷或定時(shí)器可以生成一個(gè)事件來觸發(fā)ADC進(jìn)行采樣,然后使用DMA將測(cè)量值寫入內(nèi)存,而無需喚醒ARM核心處理器—理論上不執(zhí)行任何代碼,即可完成這些工作。制作者或logo項(xiàng)目4:電子門鈴7——中文參考手冊(cè)9.2邊沿觸發(fā)觸發(fā)中斷觸發(fā)事件從GPIO引腳輸入↙EXTI框圖知識(shí)準(zhǔn)備:
GPIOEXTI外部中斷/事件控制器外部中斷/事件線↓摘自中文參考手冊(cè)表55制作者或logo項(xiàng)目4:電子門鈴8↙摘自中文參考手冊(cè)PVD—可編程電壓監(jiān)測(cè)器↙摘自中文參考手冊(cè)圖20之后的說明部分觸發(fā)中斷觸發(fā)事件EXTI框圖↖從GPIO引腳輸入知識(shí)準(zhǔn)備:
GPIOEXTI外部中斷/事件控制器外部中斷/事件線EXTI0-15用于GPIOEXTI5~EXTI9共用一個(gè)中斷通道EXTI10~EXTI15共用一個(gè)中斷通道制作者或logo項(xiàng)目4:電子門鈴9…↓摘自中文參考手冊(cè)表55↙↘摘自中文參考手冊(cè)圖20摘自中文參考手冊(cè)圖20→以及圖后的說明↘知識(shí)準(zhǔn)備:STM32CUBEMXGPIO模式上升沿觸發(fā)中斷下降沿觸發(fā)中斷上升沿和下降沿都觸發(fā)中斷上升沿觸發(fā)事件下降沿觸發(fā)事件上升沿和下降沿都觸發(fā)事件GPIO的上拉/下拉制作者或logo項(xiàng)目4:電子門鈴10項(xiàng)目實(shí)施:基于M3主控模塊項(xiàng)目4:電子門鈴之外部中斷按住KEY1,蜂鳴器以250Hz的頻率發(fā)聲;放開KEY1,關(guān)閉蜂鳴器配置STM32CUBEMX,并生成MDK-ARM源代碼編寫代碼,編譯和調(diào)試程序下載程序250Hz的頻率發(fā)聲→每隔1/250/2=0.002秒切換1次蜂鳴器的引腳電平使用外部中斷功能制作者或logo項(xiàng)目4:電子門鈴11←摘自1+X傳感網(wǎng)考證設(shè)備“M3主控模塊”電路圖→項(xiàng)目實(shí)施:STM32CUBEMX的設(shè)置MCU選型、RCC和SYS,時(shí)鐘ClockConfiguration和項(xiàng)目ProjectManagerGPIO設(shè)置KEY1設(shè)置為GPIO_EXTI13-外部中斷/事件線13觸發(fā)模式輸入模式用戶標(biāo)簽EXTI線中斷使能LED與蜂鳴器按照任務(wù)3-1的設(shè)置方式制作者或logo項(xiàng)目4:電子門鈴12②③④⑤↖按照任務(wù)1-1的設(shè)置←NVIC優(yōu)先級(jí)分組設(shè)置①重要!②③④在main.c中重定義HAL_GPIO_EXTI_Callback()函數(shù),也可以寫在GPIO.C文件中注意寫在用戶代碼位置中,同學(xué)可自行編寫代碼,此代碼做為參考結(jié)果驗(yàn)證:M3主控模塊中按下KEY1時(shí)蜂鳴器發(fā)出聲音項(xiàng)目實(shí)施:代碼編寫和結(jié)果驗(yàn)證制作者或logo項(xiàng)目4:電子門鈴13請(qǐng)?jiān)诒緟⒖即a的基礎(chǔ)上,修改外部中斷的觸發(fā)模式,體會(huì)不同觸發(fā)模式的效果。別忘了寫變量key1_flag的聲明!所有外部中斷線通用的回調(diào)函數(shù)↖注意添加參數(shù)←添加關(guān)閉蜂鳴器的代碼
(參考項(xiàng)目3)項(xiàng)目實(shí)施:請(qǐng)將代碼添寫到正確的位置/*Privatevariables--------------------*//*USERCODEBEGINPV*//*USERCODEENDPV*/…略…intmain(void){HAL_Init();SystemClock_Config();/*Initializeallconfiguredperipherals*/MX_GPIO_Init();/*USERCODEBEGIN2*/
/*USERCODEEND2*/
/*Infiniteloop*/
/*USERCODEBEGINWHILE*/while(1){
/*USERCODEENDWHILE*/
/*USERCODEBEGIN3*/}
/*USERCODEEND3*/}/*注main()到此結(jié)束*/…略…/*USERCODEBEGIN4*//*USERCODEEND4*/制作者或logo項(xiàng)目4:電子門鈴14①②結(jié)果驗(yàn)證結(jié)果驗(yàn)證M3主控模塊中按下KEY1時(shí)喇叭發(fā)出聲音;放開KEY1時(shí)喇叭關(guān)閉制作者或logo項(xiàng)目4:電子門鈴15項(xiàng)目實(shí)施:基于proteus仿真項(xiàng)目4:電子門鈴之按鍵中斷按住KEY11,蜂鳴器以250Hz的頻率發(fā)聲;放開KEY11,關(guān)閉蜂鳴器按下KEY12,LED11亮;再次按下KEY12,LED11滅;依次輪換…配置STM32CUBEMX,生成MDK-ARM源代碼編寫代碼,編譯和調(diào)試程序下載程序進(jìn)行驗(yàn)證250Hz的頻率發(fā)聲→每隔1/250/2=0.002秒
切換1次連接蜂鳴器的引腳電平使用外部中斷功能制作者或logo項(xiàng)目4:電子門鈴16項(xiàng)目實(shí)施:STM32CUBEMX的設(shè)置MCU選型、RCC和SYS,時(shí)鐘ClockConfiguration和項(xiàng)目ProjectManagerGPIO設(shè)置KEY11設(shè)置為GPIO_EXTI13-外部中斷/事件線13觸發(fā)模式輸入模式用戶標(biāo)簽EXTI線中斷使能LED與蜂鳴器按照之前的設(shè)置制作者或logo項(xiàng)目4:電子門鈴17②③④⑤↖按照任務(wù)1-4的設(shè)置←NVIC優(yōu)先級(jí)分組設(shè)置①重要?、冖邰躃EY12設(shè)置項(xiàng)目實(shí)施:代碼編寫和結(jié)果驗(yàn)證在main.c中重定義HAL_GPIO_EXTI_Callback()函數(shù),也可以寫在GPIO.C文件中注意寫在用戶代碼位置中制作者或logo項(xiàng)目4:電子門鈴18所有外部中斷線通用的回調(diào)函數(shù)自行項(xiàng)目實(shí)施:請(qǐng)將代碼添寫到正確的位置/*Privatevariables--------------------*//*USERCODEBEGINPV*//*USERCODEENDPV*/…略…intmain(void){HAL_Init();SystemClock_Config();/*Initializeallconfiguredperipherals*/MX_GPIO_Init();/*USERCODEBEGIN2*/
/*USERCODEEND2*/
/*Infiniteloop*/
/*USERCODEBEGINWHILE*/while(1){
/*USERCODEENDWHILE*/
/*USERCODEBEGIN3*/}
/*USERCODEEND3*/}/*注main()到此結(jié)束*/…略…/*USERCODEBEGIN4*//*USERCODEEND4*/制作者或logo項(xiàng)目4:電子門鈴19①②結(jié)果驗(yàn)證結(jié)果驗(yàn)證:仿真電路中按下KEY11時(shí)喇叭發(fā)出聲音KEY11被按下時(shí),紅框內(nèi)小方塊不停地在藍(lán)色和紅色之間切換,表示SOUNDER上方引腳不停地在高低電位之間切換;制作者或logo項(xiàng)目4:電子門鈴20習(xí)題/拓展任務(wù)習(xí)題:改變項(xiàng)目KEY1/KEY11的邊沿觸發(fā)方式為僅下降沿觸發(fā),效果有何不同?操作題嘗試修改項(xiàng)目代碼,通過“__HAL_GPIO_EXTI_GENERATE_SWIT(KEY1_Pin)”實(shí)現(xiàn):按下并放開KEY2后軟件產(chǎn)生KEY1中斷,使門鈴響鈴。注:無法使用中斷的按鍵可采用輪詢方式檢測(cè)。制作者或logo項(xiàng)目4:電子門鈴21項(xiàng)目探究:?jiǎn)⒂肊XTI時(shí)的初始化MX_GPIO_Init函數(shù)→制作者或logo項(xiàng)目4:電子門鈴22③①②①②③項(xiàng)目探究:EXTI中斷處理STM32外部中斷的中斷處理當(dāng)中斷發(fā)生后中斷源向CPU提出中斷申請(qǐng)CPU中斷響應(yīng)根據(jù)中斷向量跳轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序去執(zhí)行制作者或logo項(xiàng)目4:電子門鈴23注意:若EXTI線中斷未使能,則stm32f1xx_it.c文件中不會(huì)出現(xiàn)此IRQHandler函數(shù)的定義項(xiàng)目探究:EXTI中斷處理STM32外部中斷的中斷處理-續(xù)在stm32f1xx_it.c文件中找到EXTI15_10_IRQHandler()函數(shù)后,將發(fā)現(xiàn)該函數(shù)調(diào)用了stm32f1xx_hal_gpio.c文件中的HAL庫函數(shù)HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);↗而HAL_GPIO_EXTI_IRQHandler函數(shù)在其定義中又調(diào)用了同一個(gè)文件中的回調(diào)函數(shù)HAL_GPIO_EXTI_Callback(GPIO_Pin)注意:此回調(diào)函數(shù)具有__weak屬性制作者或logo項(xiàng)目4:電子門鈴24中斷服務(wù)函數(shù)的回調(diào)函數(shù)用戶需要在用戶文件中重定義這個(gè)回調(diào)函數(shù),將中斷程序的功能寫在此函數(shù)中!知識(shí)拓展:?jiǎn)?dòng)程序和EXTI中斷處理EDIT菜單“FindinFiles”查找何處調(diào)用了EXTI15_10_IRQHandler()函數(shù)startup_stm32f103xe.s
是匯編語言的啟動(dòng)文件常見錯(cuò)誤提醒:若STM32CUBEMX沒有Enable中斷源↑,該中斷源的IRQHandler函數(shù)定義將不會(huì)出現(xiàn)在stm32f1xx_it.c,用戶重定義的回調(diào)函數(shù)將不會(huì)被執(zhí)行制作者或logo項(xiàng)目4:電子門鈴25①③②知識(shí)拓展:
啟動(dòng)程序和EXTI中斷處理外部中斷處理函數(shù)制作者或logo項(xiàng)目4:電子門鈴26①③⑤↖用戶編程①STM32CUBEMX中有使能EXTI中斷此函數(shù)定義才會(huì)在stm32f1xx_It.c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 32543-2026建筑施工機(jī)械與設(shè)備混凝土輸送管連接型式和安全要求
- 通風(fēng)維護(hù)工崗前操作考核試卷含答案
- 飛機(jī)儀表電氣系統(tǒng)裝調(diào)工安全文明強(qiáng)化考核試卷含答案
- 退煮漂操作工安全實(shí)操競(jìng)賽考核試卷含答案
- 制鞋工安全宣教強(qiáng)化考核試卷含答案
- 管模維修工安全培訓(xùn)競(jìng)賽考核試卷含答案
- 銀行內(nèi)部控制管理制度
- 酒店員工崗位責(zé)任與協(xié)作制度
- 酒店客房鑰匙卡掛失補(bǔ)辦制度
- 超市消防安全演練制度
- GB/T 31831-2025LED室內(nèi)照明應(yīng)用技術(shù)要求
- 2025年上交所金融筆試題目及答案
- 服務(wù)外包人員保密管理制度(3篇)
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫及答案詳解(奪冠系列)
- 成都高新區(qū)桂溪街道公辦幼兒園招聘編外人員考試備考題庫及答案解析
- 2025年醫(yī)院病歷管理操作規(guī)范
- 汽車后市場(chǎng)培訓(xùn)課件
- 2026云南保山電力股份有限公司校園招聘50人筆試備考題庫及答案解析
- 部隊(duì)基本防病知識(shí)課件
- GB 4053.2-2025固定式金屬梯及平臺(tái)安全要求第2部分:斜梯
- 2026屆上海市長(zhǎng)寧區(qū)市級(jí)名校高一上數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
評(píng)論
0/150
提交評(píng)論