使用STM32單片機(jī)進(jìn)行外部中斷實(shí)驗(yàn)的詳細(xì)資料說(shuō)明
資料介紹
一、實(shí)驗(yàn)?zāi)康?/p>
理解中斷的基本概念。
掌握STM32的中斷源及中斷優(yōu)先級(jí)。
掌握STM32外部中斷技術(shù)的基本使用方法。
掌握STM32中斷處理程序的編程方法。
硬件設(shè)計(jì)原理圖如下圖1所示:LED的連接在上一節(jié)已經(jīng)介紹過(guò)了,在STM32開發(fā)板上的按鍵KEY0是接在PE4上,KEY1是接在PE3上的,KEY2是連在PE2上,WK_UP接在PA0上。
實(shí)驗(yàn)預(yù)備知識(shí)
中斷對(duì)于開發(fā)嵌入式系統(tǒng)來(lái)講的地位絕對(duì)是毋庸置疑的,在C51單片機(jī)時(shí)代,一共只有5個(gè)中斷,其中2個(gè)外部中斷,2個(gè)定時(shí)/ 計(jì)數(shù)器中斷和一個(gè)串口中斷,但是在STM32中,中斷數(shù)量大大增加,而且中斷的設(shè)置也更加復(fù)雜。今天就將來(lái)探討一下關(guān)于 STM32中的中斷系統(tǒng)。
ARM Coetex-M3內(nèi)核共支持256個(gè)中斷,其中16個(gè)內(nèi)部中斷,240個(gè)外部中斷和可編程的256級(jí)中斷優(yōu)先級(jí)的設(shè)置。STM32目前支持的中斷共84個(gè)(16個(gè)內(nèi)部+68個(gè)外部),還有16級(jí)可編程的中斷優(yōu)先級(jí)的設(shè)置,僅使用中斷優(yōu)先級(jí)設(shè)置8bit中的高4 位。
STM32可支持68個(gè)中斷通道,已經(jīng)固定分配給相應(yīng)的外部設(shè)備,每個(gè)中斷通道都具備自己的中斷優(yōu)先級(jí)控制字節(jié)PRI_n(8 位,但是STM32中只使用4位,高4位有效),每4個(gè)通道的8位中斷優(yōu)先級(jí)控制字構(gòu)成一個(gè)32位的優(yōu)先級(jí)寄存器。68個(gè)通道的優(yōu)先級(jí)控制字至少構(gòu)成17個(gè)32位的優(yōu)先級(jí)寄存器。
STM32的每個(gè)IO口都可以作為中斷輸入,這點(diǎn)很好用。要把IO口作為外部中斷輸入,有以下幾個(gè)步驟:
1)初始化IO口為輸入。這一步設(shè)置你要作為外部中斷輸入的IO口的狀態(tài),可以設(shè)置為上拉/下拉輸入,也可以設(shè)置為浮空輸入,但浮空的時(shí)候外部一定要帶上拉,或者下拉電阻。否則可能導(dǎo)致中斷不停的觸發(fā)。在干擾較大的地方,就算使用了上拉/下拉,也建議使用外部上拉/下拉電阻,這樣可以一定程度防止外部干擾帶來(lái)的影響。
2)開啟IO口復(fù)用時(shí)鐘,設(shè)置IO口與中斷線的映射關(guān)系。 STM32的IO口與中斷線的對(duì)應(yīng)關(guān)系需要配置外部中斷配置寄存器EXTICR,這樣我們要先開啟復(fù)用時(shí)鐘,然后配置IO口與中斷線的對(duì)應(yīng)關(guān)系。才能把外部中斷與中斷線連接起來(lái)。
3)開啟與該IO口相對(duì)的線上中斷/事件,設(shè)置觸發(fā)條件。這一步,我們要配置中斷產(chǎn)生的條件,STM32可以配置成上升沿觸發(fā),下降沿觸發(fā),或者任意電平變化觸發(fā),但是不能配置成高電平觸發(fā)和低電平觸發(fā)。這里根據(jù)自己的實(shí)際情況來(lái)配置。同時(shí)要開啟中斷線上的中斷,這里需要注意的是:如果使用外部中斷,并設(shè)置該中斷的EMR位的話,會(huì)引起軟件仿真不能跳到中斷,而硬件上是可以的。而不設(shè)置EMR,軟件仿真就可以進(jìn)入中斷服務(wù)函數(shù),并且硬件上也是可以的。建議不要配置EMR位。
4)配置中斷分組(NVIC),并使能中斷。這一步,我們就是配置中斷的分組,以及使能,對(duì)STM32的中斷來(lái)說(shuō),只有配置了NVIC的設(shè)置,并開啟才能被執(zhí)行,否則是不會(huì)執(zhí)行到中斷服務(wù)函數(shù)里面去的。關(guān)于NVIC的詳細(xì)介紹,請(qǐng)參考前面章節(jié)。
5)編寫中斷服務(wù)函數(shù)。這是中斷設(shè)置的最后一步,中斷服務(wù)函數(shù),是必不可少的,如果在代碼里面開啟了中斷,但是沒(méi)編寫中斷服務(wù)函數(shù),就可能引起硬件錯(cuò)誤,從而導(dǎo)致程序崩潰!所以在開啟了某個(gè)中斷后,一定要記得為該中斷編寫服務(wù)函數(shù)。在中斷服務(wù)函數(shù)里面編寫你要執(zhí)行的中斷后的操作。通過(guò)以上幾個(gè)步驟的設(shè)置,我們就可以正常使用外部中斷了。
- Keil 51單片機(jī)IO端口實(shí)驗(yàn)的詳細(xì)資料說(shuō)明 18次下載
- 使用STM32F103單片機(jī)實(shí)現(xiàn)定時(shí)器實(shí)驗(yàn)的詳細(xì)資料說(shuō)明 5次下載
- 使用STM32F103RB單片機(jī)實(shí)現(xiàn)外部中斷實(shí)驗(yàn)的資料詳細(xì)說(shuō)明 0次下載
- 使用STM32F103RB單片機(jī)實(shí)現(xiàn)串口實(shí)驗(yàn)的詳細(xì)資料說(shuō)明 7次下載
- 使用STM32F103RB單片機(jī)實(shí)現(xiàn)蜂鳴器實(shí)驗(yàn)的詳細(xì)資料說(shuō)明 4次下載
- STM32單片機(jī)的外部中斷實(shí)驗(yàn)詳細(xì)資料說(shuō)明 1次下載
- 80C51單片機(jī)的中斷系統(tǒng)和系統(tǒng)結(jié)構(gòu)的詳細(xì)資料說(shuō)明
- 使用51單片機(jī)的計(jì)時(shí)器和中斷的詳細(xì)資料說(shuō)明
- 使用51單片機(jī)進(jìn)行中斷和軟件仿真的詳細(xì)資料說(shuō)明
- 使用51單片機(jī)進(jìn)行中斷設(shè)置的詳細(xì)資料說(shuō)明
- 51單片機(jī)各中斷初始化及子程序模板的詳細(xì)資料說(shuō)明
- 51單片機(jī)的中斷系統(tǒng)詳細(xì)資料說(shuō)明
- 使用單片機(jī)進(jìn)行驅(qū)動(dòng)蜂鳴器實(shí)驗(yàn)的詳細(xì)資料說(shuō)明
- 使用STM32單片機(jī)實(shí)現(xiàn)IAP的詳細(xì)資料說(shuō)明
- 51單片機(jī)的中斷系統(tǒng)詳細(xì)資料總結(jié) 3次下載
- 什么是中斷?單片機(jī)中斷處理過(guò)程詳解 5142次閱讀
- 單片機(jī)外部中斷的好處 2338次閱讀
- STM32的IO外部中斷EXTI的使用 2114次閱讀
- PIC系列單片機(jī)的詳細(xì)資料說(shuō)明 5549次閱讀
- AT89S51單片機(jī)實(shí)驗(yàn)板的詳細(xì)資料簡(jiǎn)介 4900次閱讀
- 如何進(jìn)行PLC控制程序的設(shè)計(jì)詳細(xì)資料PPT說(shuō)明 6010次閱讀
- 如何利用51單片機(jī)對(duì)protues進(jìn)行仿真擴(kuò)展 3053次閱讀
- 單片機(jī)中的堆棧詳細(xì)資料說(shuō)明 4838次閱讀
- 51單片機(jī)的外部中斷實(shí)驗(yàn)設(shè)計(jì) 1.2w次閱讀
- 如何對(duì)51單片機(jī)進(jìn)行外部擴(kuò)展 1.5w次閱讀
- 51單片機(jī)的中斷體系結(jié)構(gòu)_中斷的響應(yīng)過(guò)程 2w次閱讀
- 關(guān)于單片機(jī)的中斷系統(tǒng)的詳細(xì)介紹 3.2w次閱讀
- 單片機(jī)中斷系統(tǒng)介紹_51單片機(jī)中斷系統(tǒng)結(jié)構(gòu) 1.2w次閱讀
- 詳細(xì)的STM32單片機(jī)學(xué)習(xí)筆記 1.4w次閱讀
- 51單片機(jī)的擴(kuò)展中斷方法 1241次閱讀
下載排行
本周
- 1FS8023 USB的PD和QC快充協(xié)議電壓誘騙控制器中文手冊(cè)
- 2.61 MB | 3次下載 | 免費(fèi)
- 2FS8024A USB PD協(xié)議SINK端誘騙取電芯片中文資料
- 2.05 MB | 1次下載 | 免費(fèi)
- 3AG32VH 系列應(yīng)用指南
- 0.60 MB | 1次下載 | 免費(fèi)
- 4QK1210規(guī)格書V1
- 1.03 MB | 1次下載 | 免費(fèi)
- 5DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費(fèi)
- 6AD庫(kù)封裝庫(kù)安裝教程
- 0.49 MB | 1次下載 | 免費(fèi)
- 7PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費(fèi)
- 8網(wǎng)絡(luò)安全從業(yè)者入門指南
- 2.91 MB | 1次下載 | 免費(fèi)
本月
- 1貼片三極管上的印字與真實(shí)名稱的對(duì)照表詳細(xì)說(shuō)明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設(shè)計(jì)指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍(lán)牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費(fèi)
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評(píng)論