KF32F系列的芯片关于软件中断的功能几乎没有看到什么帖子,所以给需要的兄弟普及一下:
INT_EIF0中的保留位可以做软件中断使用,主要要看清楚点(bit1-bit0)是不可以是使用的
然后就是在大家的工程里面的vector.c文件中有下面这些回调函数
然后就是到了最开的环节了,直接上代码
//初始化
void software_exti_init(void)
{
INT_Interrupt_Priority_Config(INT_Reserved4, 2, 0);//设定优先级
INT_Interrupt_Enable(INT_Reserved4,TRUE); //使能中断
INT_All_Enable (TRUE); //使能总中断
}
//触发软件中断
void trigger(void)
{
INT_EIF0 |= 1 << INT_Reserved4; //soft4 中断使能
}
//*****************************************************************************************
// Soft4中断函数
//*****************************************************************************************
void __attribute__((interrupt)) _Soft4_exception (void)
{
INT_EIF0 &= ~(1 << INT_Reserved4);//虽然文档上面说会清空标志位的,但是为了安全,
//所以我们还是 要做一次清空标志位
/* 在这里面爱干嘛就干嘛,不过不能太久,原因你们应该的懂的 */
/* end */
}