问题:在进行CAN测试时,不停的对CAN总线进行断开和连接,最终导致CAN无法正常工作。
环境:STM32f103RCT6,CAN1。
处理办法可以参考这篇文章:STM32 CAN模块问题:1、CAN收发器断电后重新上电,CAN模块死机(离线)现象;2、过滤器配置完之后没有过滤效果
下面写一下我参考上面的博客对代码的修改过程
这个是STM32中文参考手册上面的。
出现问题的原因分析:
修改代码过程:
第一步:
改成 ENABLE
CAN_InitStructure.CAN_ABOM = ENABLE;
第二步:
添加一句:
CAN_ITConfig(CAN1,CAN_IT_ERR,DISABLE); //禁止错误中断
结果:
不管断开和连接多少次CAN总线,CAN都会正常工作。