zhoutuo 发表于 2020-9-16 11:02:22

关于STM32G4的外部晶振设置can通信波特率

目前使用G4配置CAN,波特率500k,在选择内部晶振为外设时钟时,可以通过计算配置500k正常通信,但是使用外部24M晶振时,只有把APB1设置为16M时可以正常通信,一旦采用其他频率时,波特率均不正常无法通信。然后目前项目要求外设时钟必须要160M因此现在解决不了了,请问有人知道是什么原因吗,或者有什么其他解决方法

发表于 2020-9-16 12:44:44

CAN波特率是通过总线时钟频率,楼主看一下对应的芯片使用的是哪个频率,一般是系统时钟的1/2。然后再重新算波特率需要配置的几个参数。

小歆-2051663 发表于 2020-9-17 16:49:25



CAN波特率=APB总线频率/BRP分频器/(1+tBS1+tBS2)

根据你的总线频率重新配一下

zhoutuo 发表于 2020-9-18 14:22:25

已经是按照总线频率计算配置了

jklou 发表于 2020-9-20 22:39:03

zhoutuo 发表于 2020-9-18 14:22
已经是按照总线频率计算配置了

问题找到了吗?APB1的频率是多少?time quantum显示是多少(按照你的配置,显示应该是62.5ns)?

butterflyspring 发表于 2020-9-27 17:28:25

一般来说,可以用外部的还回模式测试一下,既可以测试发送的波特率,也可以测试是否能正常接收。
页: [1]
查看完整版本: 关于STM32G4的外部晶振设置can通信波特率