欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于STM32F103的CAN总线进行热插拔,引起CAN无法正常工作

程序员文章站 2022-04-02 10:42:27
...

问题:在进行CAN测试时,不停的对CAN总线进行断开和连接,最终导致CAN无法正常工作。

环境:STM32f103RCT6,CAN1。

处理办法可以参考这篇文章:STM32 CAN模块问题:1、CAN收发器断电后重新上电,CAN模块死机(离线)现象;2、过滤器配置完之后没有过滤效果

下面写一下我参考上面的博客对代码的修改过程

这个是STM32中文参考手册上面的。
出现问题的原因分析:
基于STM32F103的CAN总线进行热插拔,引起CAN无法正常工作
基于STM32F103的CAN总线进行热插拔,引起CAN无法正常工作
修改代码过程:
第一步:

改成 ENABLE
CAN_InitStructure.CAN_ABOM = ENABLE;

基于STM32F103的CAN总线进行热插拔,引起CAN无法正常工作
第二步:
添加一句:

CAN_ITConfig(CAN1,CAN_IT_ERR,DISABLE);	//禁止错误中断

基于STM32F103的CAN总线进行热插拔,引起CAN无法正常工作

结果:
不管断开和连接多少次CAN总线,CAN都会正常工作。

相关标签: STM32 stm32