FAQ
- M051 Base Series(95)
- M0518 Series(97)
- M0519 Series(43)
- M0564 Series(1)
- Mini51 Base Series(90)
- Nano100/102 Base Series(101)
- Nano103 Base Series(10)
- Nano110/112 LCD Series(100)
- Nano120 USB Series(111)
- Nano130 Advanced Series(110)
- NUC029 Series(94)
- NUC100/200 Advanced Series(102)
- NUC120/122/123/220 USB Series(116)
- NUC121/125 Series(1)
- NUC126 USB Series(2)
- NUC130/230 CAN Series(103)
- NUC131/NUC1311 CAN Series(98)
- NUC140/240 Connectivity Series(114)
よくある質問
為什麼外設中斷旗標已經被清除,但還是會進入中斷服務函式? 日期:2018-11-26
因為NVIC_ICPR暫存器中,對應的外設中斷旗標沒有被清除。
在Cortex-M的架構中,中斷服務函式執行的先後順序是透過NVIC控制的,這裡問題中有兩個旗標,一個是外設內部自己的中斷旗標,另一個是NVIC中用來記錄哪個外設發出中斷的旗標。
外設的中斷旗標被設定為1的同時,會將NVIC中的NVIC_ICPR暫存器對應的值設為1,若是使用者僅清除外設的中斷旗標後,NVIC_ICPR暫存器中對應的值並沒有被清掉,NVIC還是會依照NVIC_ICPR暫存器的結果進入中斷服務函式。
進入中斷服務函式的概略流程如下:
(1) 外設中斷被觸發
(2) 外設的中斷旗標舉起
(3) NVIC中,NVIC_ICPR暫存器對應的旗標舉起
(4) 由NVIC排程後,進入中斷服務函式
NVIC_ICPR暫存器清除的方式有二種。
(1) 當進入中斷服務函式時,由硬體自動清除NVIC_ICPR暫存器
(2) 手動透過軟體去清除NVIC_ICPR暫存器
| 產品: | 微控制器 ,Arm Cortex-M0 微控制器 ,Arm Cortex-M4 微控制器 |
|---|---|
| 應用: | |
| 功能: | Peripherals,ARM,NVIC |