STM32 CAN无输出

使用STM32CubeIDE,STM34F407VGT6,做CAN开发,按照网上的步骤,CAN总是无输出。楼主参考了很多文章,如下:

【STM32CubeMX】STM32F407配置CAN1通信调制OBD_stm32cubemx can_米杰的声音的博客-CSDN博客

(总结)STM32CubeIDE_HAL库_STM32F103C8T6_CAN总线_中断接收_can模块的主函数中。所有回调函数的实现都和在_斌斌小少ZL的博客-CSDN博客

STM32CubeIDE开发(二十六), STM32的CAN总线开发要点_stm32can总线_py_free-物联智能的博客-CSDN博客

CAN总线学习笔记 | STM32CubeMX配置CAN环回测试_can回环测试_安迪西的博客-CSDN博客

总体步骤,大家大同小异,但是CAN总是通讯失败,并且通过示波器可以观察到一个奇怪的波形。

STM32 CAN无输出_第1张图片

从波形来看, 周期性的发送是出发了,但是这个波形明显是一个异常波形。搜索资料,发现并无类似文章,看来这只是我的个人问题。经过一天调试,发现问题所在。

STM32 CAN无输出_第2张图片

 

STM32 CAN无输出_第3张图片

如上图,为了得到500KHz的波特率,楼主配置为:36MHz/(24*(1+1+1))=500KHz,看起来没什么问题,当时输出总是上面那个波形。后来把参数改为:36MHz/(6*(5+6+1))=500KHz,一切都正常了,问题得到解决。

 问题追踪

在STM32编程手册,并没有BS1和BS2的特殊说明,按文档,这两个参数可以取值1~16。

STM32 CAN无输出_第4张图片

后来找到一片文章,说BS1+BS2+1的取值应在8~25之间。因为已花费较多时间,不再深究,写篇笔记,记录并帮助有可能遇到此问题的有缘人。

STM32 CAN无输出_第5张图片

Cubemx中CAN1配置_cubemx配置can_Danny787的博客-CSDN博客

 

 

你可能感兴趣的:(其他,stm32,单片机,嵌入式硬件)