- IRQn_Type
control+F 搜索【IRQn_Type】
Lookin:Current Project
最终在gd32f4xx.h中找到
- 中断函数
中断函数的名字都是固定的,每一个中断通道对应一个中断函数。
在启动文件(xxxx.s)中,以IRQHandler结尾的字符串就是中断函数的名字
- 中断函数无参无返回值
void EXTI10_15_IRQHandler(void){
}
- 中断函数格式
void EXTI10_15_IRQHandler(void){
首先进行中断标志位的判断
if(exti_interrupt_flag_get(EXTI_14)== SET){
中断函数最后一定要调用清除中断标志位的函数!(因为只要中断标志位置1,程序就会跳到中断函数,未清除中断标志位则会一直申请中断。)
exti_interrupt_flag_clear(EXTI_14);
}
}
- exit.h中的后四个函数区分
在主程序中查看标志位 FlagStatus exti_flag_get(exti_line_enum linex);
在主程序中清除标志位 void exti_flag_clear(exti_line_enum linex);
在中断程序中查看标志位 FlagStatus exti_interrupt_flag_get(exti_line_enum linex);
在中断程序中清除标志位 void exti_interrupt_flag_clear(exti_line_enum linex);
- Notes
1.中断函数中最好不要执行耗时过长的代码;
2.最好不要在中断函数和主函数调用相同的函数,或者操作同一硬件。