高级会员

- 积分
- 747
- 金钱
- 747
- 注册时间
- 2016-5-21
- 在线时间
- 199 小时
|

楼主 |
发表于 2016-8-14 16:32:32
|
显示全部楼层
初步判断是波特率的问题,用示波器看了下,无论是STM32还是 DSPIC33F的CAN理论设置波特率和实际波特率误差都很大。
比如我都想设置成40K的波特率
STM32 设置完以后是36K左右
DSPIC33F 设置完以后是38K左右
这样,STM32跟另外一块STM32的波特率是大致相同的,因此可以通信
DSPIC33跟另外一块也是大致相同的,可以通信
但是STM32和DSIC33直接的波特率就差很多,导致无法通行,我不断的改配置参数通过示波器看让两个波特率尽量相同,现在可以通信,DSPIC33发的时候STM32收没问题,STM32发DSPIC33收的时候丢包率很大。
我现在的问题是波特率设置不会误差这么大吧理论设置40K,实际示波器看着只有36K,这样合理吗?大家有没有遇到过,是因为晶振或其他硬件原因,还是哪里的设置原因? |
|