資料介紹
中斷基本編程方法
利用《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ù)的標準名稱(參見表1.1)。例如,GPIOB端口的中斷服務(wù)函數(shù)名稱是GPIO_Port_B_ISR,對應(yīng)的函數(shù)頭應(yīng)當是“void GPIO_Port_B_ISR(void)”,參數(shù)和返回值都必須是void類型。在Keil或IAR開發(fā)環(huán)境下,中斷服務(wù)函數(shù)的名稱可以由程序員自己指定,但還是推薦采用GCC下的標準名稱,這樣有利于程序移植。
中斷狀態(tài)查詢 一個具體的片內(nèi)外設(shè)可能存在多個子中斷源,但是都共用同一個中斷向量。例如GPIOA有8個管腳,每個管腳都可以產(chǎn)生中斷,但是都共用同一個中斷向量號16,任一管腳發(fā)生中斷時都會進入同一個中斷服務(wù)函數(shù)。為了能夠準確區(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語言標準庫函數(shù) 0次下載
- 基于標準庫函數(shù)與基于HAL庫函數(shù)的stm32編程方式對比
- stm32下標準庫函數(shù)與HAL庫函數(shù)編程方式的差異
- 詳細介紹STM32單片機常用庫函數(shù)資料下載
- STM32的標準例程庫函數(shù)資料合集免費下載 32次下載
- STM32 V3.5固件庫函數(shù)調(diào)用說明中文版免費下載 0次下載
- STM32 IAR的庫函數(shù)資料免費下載 44次下載
- 在LabVIEW中使用外部代碼的詳細資料說明 18次下載
- 51單片機常用庫函數(shù)程序免費下載
- Alientek MiniSTM32開發(fā)板例程庫函數(shù)版本資料合集免費下載 0次下載
- stm32f2xx固件庫手冊詳細介紹了stm32f2xx的庫函數(shù)及使用方法 278次下載
- ALIENTEK MiniSTM32開發(fā)板例程-庫函數(shù)版本 0次下載
- ALIENTEK MiniSTM32開發(fā)板例程(庫函數(shù)版本) 0次下載
- stm32庫函數(shù)解釋 16次下載
- CodeVisionAVR C語言庫函數(shù)介紹
- PLC中斷功能的作用及使用方法 3.6k次閱讀
- 手把手帶你移植HAL庫函數(shù) 4.4k次閱讀
- GD32 MCU是如何進入中斷函數(shù)的 2k次閱讀
- 學習筆記分享|使用C庫函數(shù)控制ELF 1開發(fā)板的LED 1.4k次閱讀
- STM32庫函數(shù)SystemInit()詳解 5.7k次閱讀
- 函數(shù)指針的基本概念和語法 1.1k次閱讀
- MAXQ微控制器中斷編程 1.3k次閱讀
- STM32F103使用(3.5)庫函數(shù)新建工程 4.9k次閱讀
- 如何確保單片機精確定時控制有哪些編程方法詳細說明 4.7k次閱讀
- 單片機的中斷函數(shù)編寫方法 8.4k次閱讀
- C51單片機中斷函數(shù)的修飾方法 3.1k次閱讀
- 淺析單片機C語言函數(shù)之中斷函數(shù) 1.2w次閱讀
- 關(guān)于單片機的中斷系統(tǒng)的詳細介紹 3.3w次閱讀
- 庫函數(shù)頭文件大全 1w次閱讀
- TMS320C32的中斷編程方法介紹 2.4k次閱讀
下載排行
本周
- 12EDL05x06xx系列 600V半橋門驅(qū)動器帶集成自舉二極管(BSD)手冊
- 0.69 MB | 1次下載 | 免費
- 2AT817晶體管光耦系列
- 1.86 MB | 次下載 | 免費
- 3國產(chǎn)千兆網(wǎng)口芯片PT153S中文資料
- 1.35 MB | 次下載 | 免費
- 4壓力容器焊接手冊
- 6.47 MB | 次下載 | 2 積分
- 5PC1502 18V_1A負載開關(guān)電路中文資料
- 13.40 MB | 次下載 | 免費
- 6FP7135V060-G1/FP7125替代物料pin to pin
- 495.40 KB | 次下載 | 免費
- 7PAW3311DB光學鼠標導(dǎo)航傳感器數(shù)據(jù)手冊
- 3.20 MB | 次下載 | 2 積分
- 8斯丹麥德電子 | 用于芯片測試系統(tǒng)的射頻干簧繼電器
- 5.11 MB | 次下載 | 1 積分
本月
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 16次下載 | 10 積分
- 2SW6238V ACCC 三 PD 四口多協(xié)議移動電源 SOC規(guī)格書
- 0.59 MB | 5次下載 | 1 積分
- 3反激式開關(guān)電源設(shè)計解析
- 0.89 MB | 4次下載 | 5 積分
- 4IP6742_datasheet_100V8A 同步 BUCK 控制器
- 2.16 MB | 3次下載 | 免費
- 5IP5365支持3路 Type-C、UFCS、PD3.0等全部快充協(xié)議的移動電源SOC規(guī)格書
- 3.38 MB | 1次下載 | 1 積分
- 6簡易光伏控制器原理圖資料
- 0.07 MB | 1次下載 | 5 積分
- 72EDL05x06xx系列 600V半橋門驅(qū)動器帶集成自舉二極管(BSD)手冊
- 0.69 MB | 1次下載 | 免費
- 8CDx4HC74 具有清零和預(yù)設(shè)功能的雙路D類正邊沿觸發(fā)的觸發(fā)器數(shù)據(jù)表
- 1.45 MB | 次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81605次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73829次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論