嵌入式技术william hill官网
直播中

尚文清

7年用户 1592经验值
私信 关注
[问答]

STM32F413 CAN通信波特率配置错误不清楚是什么原因

各位大佬好,打扰了,最近尝试在 stm32f413vgt6 的板子上使用 can 通信,但发现在正常模式下无法通信,环回模式可以。检查驱动代码后,发现似乎是波特率配置不对,官方驱动是按照 45m 的时钟配置的。但413的时钟是 50m, 可尝试按照 50m,重新计算修改参数后依然无法通信。不清楚什么原因。哪位大佬可以帮忙看看这么改是否正确,谢谢!

50 / ((1 + 6 + 3) * 5) = 1MHz ?

2.jpg

msh 下也可以看到,有明显的异常回馈,似乎波特率确实不对。。。

2.jpg

当前时钟配置:

2.jpg

回帖(2)

王飞云

2023-2-2 14:55:25
建议直接测TX的波形来确定时钟和波特率的关系,波特率建议先设低些,这样即使出错翻倍了也还在正常范围内。
举报

王杰

2023-2-2 14:55:34
把CAN_SJW_2TQ改为CAN_SJW_1TQ就行了,你的公式是对的,可以看看CAN_SJW这个宏定义,已经加过1了,所以不用再加1
举报

更多回帖

发帖
×
20
完善资料,
赚取积分