学习过程中踩的一些坑,记下来权当学习笔记。
中断服务函数名是固定的,在启动代码里面已经定下来了,在start文件里找。
书写中断服务函数的时候注意的问题:
1. 中断服务函数名尽量用复制,不要自己写,因为只要你写错一个字母,这个函数就变成普通函数了。
2. (如果中断服务函数是公共入口)进入到中断服务函数后先要查询是哪种中断
3. 先清中断标志,然后再做中断处理,不要把清中断标志放在函数的最后。(如果把清除中断标志放在中断服务函数的最后,会出现当发出清中断标志指令后,硬件还没有把相关标志清除掉,程序就已经跳出了中断服务函数,这个时候NVIC又会识别到标志是1,出现重复中断)。---可以清除中断标志命令发出后,等待清除成功再往下执行。
4. 中断服务函数应该尽量简短,一般是做一些标识,不要在中断中做延时之类的、占用CPU很长时间的工作。----快进快出
5. 中断服务函数不会被任何一个函数调用,当中断条件满足后,NVIC控制把CPU拉到中断服务函数中执行。
第5点是此次学习过程中最困惑的一点,经过百度明白了其工作原理。