|
在上一次外部中断我们以经实现了由按键了进入中断,这就是硬件产生的中断。这框图中我们看出一个或门链接着软件事件寄存器和边沿检测电路。都可以流向NVIC。我们可以用软件来模拟产生中断。黑色画的线代表硬件,红色代表软件产生的中断。
/*******************************************
软件模拟产生中断
PF5映射到EXIT5
********************************************/
void SOFT_Interrupt_Init()
{
//使能软件中断
EXTI->IMR |= (1<<5);
//初始化关闭中断
EXTI->SWIER &= ~(1<<5);
//设置优先级
My_NVIC_Init(EXTI9_5_IRQn,7-3,6,1);
}
在.h文件中加入这个宏
#define SOFT_ON EXTI->SWIER |= (1<<5) /开启软件中断,如果需要产生软件中断,就在main函数调用就可以
#define SOFT_OFF EXTI->SWIER &= ~(1<<5)/关闭软件中断。
|
|