目前使用G4配置CAN,波特率500k,在选择内部晶振为外设时钟时,可以通过计算配置500k正常通信,但是使用外部24M晶振时,只有把APB1设置为16M时可以正常通信,一旦采用其他频率时,波特率均不正常无法通信。然后目前项目要求外设时钟必须要160M因此现在解决不了了,请问有人知道是什么原因吗,或者有什么其他解决方法 |
CAN波特率是通过总线时钟频率,楼主看一下对应的芯片使用的是哪个频率,一般是系统时钟的1/2。然后再重新算波特率需要配置的几个参数。
CAN波特率=APB总线频率/BRP分频器/(1+tBS1+tBS2) 根据你的总线频率重新配一下
已经是按照总线频率计算配置了
已经是按照总线频率计算配置了
问题找到了吗?APB1的频率是多少?time quantum显示是多少(按照你的配置,显示应该是62.5ns)?
一般来说,可以用外部的还回模式测试一下,既可以测试发送的波特率,也可以测试是否能正常接收。