CM3可以实现256个异常和中断,
其中异常占用16个向量位置,
中断占用占用240个向量位置.
STM32作为一种具体的芯片,
实现了16个异常(其中6个保留),
实现了60个中断,
所以就有两个中断设置使能寄存器ISER0和ISER1,
每个可以控制32个中断的使能,
也有两个中断清除寄存器ICER0和ICER1.
例如RTC中断,向量位置为3,即RTC向量地址为4*(16+3)= 0x4C位置.
要实现RTC中断处理,
首先在启动文件中0x4C位置放入RTC_IRQHandler()函数的首地址,(keil编译器自动生成)
然后设置ISER0 |= (0x01 << 3);即可.
实际上CM3的中断使用远比arm7简单,
可是由于ST和luminary都推行库,手册里面也不提中断寄存器,
我们看到的库例子,却非常繁杂,一个简单的中断实现都让我们看半天.
|