Häufig gestellte Fragen
- M051-Base-Serie(95)
- M0518-Serie(97)
- M0519-Serie(43)
- M0564-Serie(1)
- Mini51-Base-Serie(90)
- Nano100/102-Base-Serie(101)
- Nano103-Base-Serie(10)
- Nano110/112-LCD-Serie(100)
- Nano120-USB-Serie(111)
- Nano130-Advanced-Serie(110)
- NUC029-Serie(94)
- NUC100/200-Advanced-Serie(102)
- NUC120/122/123/220-USB-Serie(116)
- NUC121/125-Serie(1)
- NUC126-USB-Serie(2)
- NUC130/230-CAN-Serie(103)
- NUC131-NUC1311-CAN-Serie(98)
- NUC140/240-Konnektivität-Serie(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 |