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 */ }
|