失败了也挺可爱,成功了就超帅。 |
前言
CH307/CH其他系列MCU 串口中断只能进一次的解决方法。
解决方法
声明中断服务函数
// 选择一个即可
void xxxx_IRQHandler(void) attribute((interrupt(“WCH-Interrupt-fast”)));
void xxxx_IRQHandler(void) attribute((interrupt()));
原因分析
官方论坛针对该问题的解答
图取自官方论坛 感谢分享
意思就是
不添加 interrupt 关键字的话 程序执行完一次中断后 不会返回
添加interrupt关键字后 会返回正常程序执行 也就是中断的正确执行方式啦
本质可能和架构有关 RISV-V和ARM 这就需要详细看看啦。