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。

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

相关推荐
然后,是第八天24 分钟前
platformio使用使用pioarduino流程
单片机
糖糖单片机设计34 分钟前
基于 STM32 + LU-ASR01 的智能台灯
stm32·单片机·嵌入式硬件·51单片机·语音识别
en.en..1 小时前
Keil 文件管理避坑(基于 STM32F4 HAL 通用模板讲解)
单片机·嵌入式硬件
女神下凡3 小时前
芯参谋(87):Linux 系统(SPI NOR)驱动开发指南
linux·运维·arm开发·驱动开发·嵌入式硬件·设计规范
起个网名真难~13 小时前
STM32F103_Bootloader_从零到UART升级成功_博客原稿
stm32·单片机·嵌入式硬件
二本咕咕-机械转码14 小时前
FreeRTOS深入解析(一)_链表与并发保护——哨兵循环链表、排序键游标、临界区与关调度
单片机·算法·链表
Zwawa15 小时前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
c语言·单片机·嵌入式
小李不想当小白15 小时前
BKP备份寄存器与RTC实时时钟(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
Zw-awa17 小时前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
stm32
La Pulga18 小时前
【FreeRTOS源码学习笔记】链表的实现
数据结构·笔记·stm32·mcu·链表·嵌入式·freertos