STM32, GD32 cubemx CAN 低速率125kbps 报文丢失,解决了

用STM32 CUBEMX生成的GD32的 can程序,在500K波特率时可以正常使用,没有发现丢包,但速率降到250k和125k时,发送138帧数据,会丢失5个包。(系统时钟168M,APB1的时钟42M)

试了各种方法无法解决,后来发现分频系数设的很大为84,BS1为2,BS2为1,SJW为1,can波特率为42M/84/(2+1+1)=125k。

解决方法:

方法1:把系统时钟改成120M,APB1设成最大的60M,分频系数改为48,BS1为5,BS2为4,SJW为1,can的波特率为60M/48/(5+4+1)=125k。

方法2:把系统时钟改成168M,APB1设成42M,分频系数改为42,BS1为4,BS2为3,SJW为1,can的波特率为42M/42/8 = 125K。

这样就不丢包了,怀疑时分频系数设置的太大了。

相关推荐
2401_843785232 小时前
STM32 AD多通道
stm32·单片机·嵌入式硬件
厂太_STAB_丝针3 小时前
【自学嵌入式(8)天气时钟:天气模块开发、主函数编写】
c语言·单片机·嵌入式硬件
charlie1145141914 小时前
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(协议层封装)
c语言·驱动开发·单片机·学习·教程·oled
简知圈8 小时前
【04-自己画P封装,并添加已有3D封装】
笔记·stm32·单片机·学习·pcb工艺
徐某人..8 小时前
ARM嵌入式学习--第十天(UART)
arm开发·单片机·学习·arm
Ronin-Lotus10 小时前
嵌入式硬件篇---CPU&GPU&TPU
嵌入式硬件·学习·cpu·gpu·tpu
linhhanpy11 小时前
自制虚拟机(C/C++)(二、分析引导扇区,虚拟机读二进制文件img软盘)
c语言·汇编·c++·python·stm32·操作系统
LS_learner12 小时前
42步进电机
嵌入式硬件
LS_learner12 小时前
PCA9685 一款由 NXP Semiconductors 生产的 16 通道、12 位 PWM(脉宽调制)控制器芯片
嵌入式硬件
stm32发烧友16 小时前
基于 STM32 的智能电梯控制系统
stm32·单片机·嵌入式硬件