資料介紹
中斷基本編程方法
利用《Stellaris外設(shè)驅(qū)動庫》編寫一個中斷程序的基本方法如下:
1. 使能相關(guān)片內(nèi)外設(shè),并進行基本的配置
對于中斷源所涉及的片內(nèi)外設(shè)必須要首先使能,使能的方法是調(diào)用頭文件《sysctl.h》中的函數(shù)SysCtlPeripheralEnable( )。使能該片內(nèi)外設(shè)以后,還要進行必要的基本配置。
2. 設(shè)置具體中斷的類型或觸發(fā)方式
不同片內(nèi)外設(shè)具體中斷的類型或觸發(fā)方式也各不相同。在使能中斷之前,必須對其進行正確的設(shè)置。以GPIO為例,分為邊沿觸發(fā)、電平觸發(fā)兩大類,共5種,這要通過調(diào)用函數(shù)GPIOIntTypeSet( )來進行設(shè)置。
3. 使能中斷
對于Stellaris系列ARM,使能一個片內(nèi)外設(shè)的具體中斷,通常要采取分3步走的方法:
調(diào)用片內(nèi)外設(shè)具體中斷的使能函數(shù)
調(diào)用函數(shù)IntEnable( ),使能片內(nèi)外設(shè)的總中斷
調(diào)用函數(shù)IntMasterEnable( ),使能處理器總中斷
4. 編寫中斷服務(wù)函數(shù)
中斷服務(wù)函數(shù)從形式上跟普通函數(shù)類似,但在命名及具體的處理上有所不同。
中斷服務(wù)函數(shù)命名 對于GCC編譯器下的程序,中斷服務(wù)函數(shù)的名稱是事先約定好的。用戶可以打開啟動文件“LM3S_Startup.s”來查看每個中斷服務(wù)函數(shù)的標(biāo)準(zhǔn)名稱(參見表1.1)。例如,GPIOB端口的中斷服務(wù)函數(shù)名稱是GPIO_Port_B_ISR,對應(yīng)的函數(shù)頭應(yīng)當(dāng)是“void GPIO_Port_B_ISR(void)”,參數(shù)和返回值都必須是void類型。在Keil或IAR開發(fā)環(huán)境下,中斷服務(wù)函數(shù)的名稱可以由程序員自己指定,但還是推薦采用GCC下的標(biāo)準(zhǔn)名稱,這樣有利于程序移植。
中斷狀態(tài)查詢 一個具體的片內(nèi)外設(shè)可能存在多個子中斷源,但是都共用同一個中斷向量。例如GPIOA有8個管腳,每個管腳都可以產(chǎn)生中斷,但是都共用同一個中斷向量號16,任一管腳發(fā)生中斷時都會進入同一個中斷服務(wù)函數(shù)。為了能夠準(zhǔn)確區(qū)分每一個子中斷源,就需要利用中斷狀態(tài)查詢函數(shù),例如GPIO的中斷狀態(tài)查詢函數(shù)是GPIOPinIntStatus( )。如果不使能中斷,而采取純粹的“輪詢”編程方式,則也是利用中斷狀態(tài)查詢函數(shù)來確定是否發(fā)生了中斷以及具體是哪個子中斷源產(chǎn)生的中斷。
中斷清除 對于Stellaris系列ARM的所有片內(nèi)外設(shè),在進入其中斷服務(wù)函數(shù)后,中斷狀態(tài)并不能自動清除,而必須采用軟件清除(但是屬于Cortex-M3內(nèi)核的中斷源例外,因為它們不屬于“外設(shè)”)。如果中斷未被及時清除,則在退出中斷服務(wù)函數(shù)時會立即再次觸發(fā)中斷而造成混亂。清除中斷的方法是調(diào)用相應(yīng)片內(nèi)外設(shè)的中斷清除函數(shù)。例如,GPIO端口的中斷清除函數(shù)是GPIOPinIntClear( )。
程序清單1.1以GPIOA中斷為例,給出了外設(shè)中斷服務(wù)函數(shù)的經(jīng)典編寫方法。關(guān)鍵是先將外設(shè)的中斷狀態(tài)讀到變量ulStatus里,然后及時地、放心地清除全部中斷狀態(tài),剩下的工作就是排列多個if語句分別進行處理了。
程序清單1.1 典型的中斷服務(wù)函數(shù)編寫方法
- C語言標(biāo)準(zhǔn)庫函數(shù) 0次下載
- 基于標(biāo)準(zhǔn)庫函數(shù)與基于HAL庫函數(shù)的stm32編程方式對比
- stm32下標(biāo)準(zhǔn)庫函數(shù)與HAL庫函數(shù)編程方式的差異
- 詳細(xì)介紹STM32單片機常用庫函數(shù)資料下載
- STM32的標(biāo)準(zhǔn)例程庫函數(shù)資料合集免費下載 31次下載
- STM32 V3.5固件庫函數(shù)調(diào)用說明中文版免費下載 0次下載
- STM32 IAR的庫函數(shù)資料免費下載 43次下載
- 51單片機常用庫函數(shù)程序免費下載
- Alientek MiniSTM32開發(fā)板例程庫函數(shù)版本資料合集免費下載 0次下載
- s132_nRF52x的庫函數(shù)詳細(xì)資料免費下載 45次下載
- stm32f2xx固件庫手冊詳細(xì)介紹了stm32f2xx的庫函數(shù)及使用方法 278次下載
- ALIENTEK MiniSTM32開發(fā)板例程-庫函數(shù)版本 0次下載
- ALIENTEK MiniSTM32開發(fā)板例程(庫函數(shù)版本) 0次下載
- stm32庫函數(shù)解釋 16次下載
- CodeVisionAVR C語言庫函數(shù)介紹
- PLC中斷功能的作用及使用方法 2194次閱讀
- 手把手帶你移植HAL庫函數(shù) 2035次閱讀
- GD32 MCU是如何進入中斷函數(shù)的 1140次閱讀
- 學(xué)習(xí)筆記分享|使用C庫函數(shù)控制ELF 1開發(fā)板的LED 604次閱讀
- STM32庫函數(shù)SystemInit()詳解 4184次閱讀
- 函數(shù)指針的基本概念和語法 603次閱讀
- MAXQ微控制器中斷編程 728次閱讀
- STM32F103使用(3.5)庫函數(shù)新建工程 3609次閱讀
- 如何確保單片機精確定時控制有哪些編程方法詳細(xì)說明 4157次閱讀
- 單片機的中斷函數(shù)編寫方法 7995次閱讀
- C51單片機中斷函數(shù)的修飾方法 2749次閱讀
- 淺析單片機C語言函數(shù)之中斷函數(shù) 1.1w次閱讀
- 關(guān)于單片機的中斷系統(tǒng)的詳細(xì)介紹 3.2w次閱讀
- 庫函數(shù)頭文件大全 9663次閱讀
- TMS320C32的中斷編程方法介紹 1942次閱讀
下載排行
本周
- 1PCB的EMC設(shè)計指南
- 2.47 MB | 12次下載 | 1 積分
- 2STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
- 3.32 MB | 4次下載 | 免費
- 3IP5310_3A 充電3.1A 放電集成 TYPE_C協(xié)議中文資料
- 1.44 MB | 2次下載 | 1 積分
- 4TL494工業(yè)用開關(guān)電源原理圖資料
- 0.22 MB | 2次下載 | 1 積分
- 5PCB Layout熱設(shè)計指導(dǎo)
- 1.25 MB | 1次下載 | 1 積分
- 6DeepSeeK學(xué)習(xí)資料
- 5.11 MB | 1次下載 | 3 積分
- 7電動汽車動力電池管理系統(tǒng)設(shè)計
- 14.53 MB | 1次下載 | 2 積分
- 8【電子元件】FVC-7P-LJ系列低抖動FASTVCXO:7.0×5.0mm陶瓷SMD封裝在通信設(shè)備
- 752.83 KB | 1次下載 | 免費
本月
- 1AI智能眼鏡產(chǎn)業(yè)鏈分析
- 4.43 MB | 394次下載 | 免費
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 297次下載 | 5 積分
- 3貼片三極管上的印字與真實名稱的對照表詳細(xì)說明
- 0.50 MB | 95次下載 | 1 積分
- 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 7AO4803A雙P通道增強型場效應(yīng)晶體管的數(shù)據(jù)手冊
- 0.11 MB | 28次下載 | 2 積分
- 8錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 19次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191388次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論