打印

STM32F017/103 CAN通信求助,急

[复制链接]
2465|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
386452199|  楼主 | 2011-9-5 21:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做STM32 CAN通信,有自己做在两块103的板子,8MHz和一块金牛F107的板子25MHz。
自己的做的两块板子之间能CAN通信
  CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
  CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;
  CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
  CAN_InitStructure.CAN_Prescaler=5;
波特率计算为450K,APB2PeriphClock = 32M

金牛F107的板子,回环没有问题,CAN1发CAN2收也没有问题,说明107的CAN也是好的。
  CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
  CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;
  CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
  CAN_InitStructure.CAN_Prescaler=5;

可是107和103就是通不起来,我想是波特率的问题,因为同样的设置波特率用示波器看是不一样的。107的高一点。
大家有没有做过这样的实验啊,帮帮忙吧
沙发
386452199|  楼主 | 2011-9-5 21:48 | 只看该作者
忘了说F107我用的是金牛的CAN例程改了一点点。

使用特权

评论回复
板凳
yinyangdianzi| | 2011-9-6 10:54 | 只看该作者
猴急也没用。。等香主。等高手

使用特权

评论回复
地板
violet520| | 2011-9-6 13:21 | 只看该作者
APB2PeriphClock = 32M ?怎么出来450K?

使用特权

评论回复
5
IJK| | 2011-9-6 14:34 | 只看该作者
对于CAN,波特率差一点都不行的,记得差别应该在1%以下

使用特权

评论回复
6
386452199|  楼主 | 2011-9-7 16:40 | 只看该作者
:lol
终于搞定了。前面写错了是36M
我用107的TIM2做一个PWM波,用示波器测出频率
再反算出107的APB2PeriphClock = 60M(不知道是乍出来的60M,手册上说的是不能超过36M的)
所以
  CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
  CAN_InitStructure.CAN_BS1=CAN_BS1_6tq;
  CAN_InitStructure.CAN_BS2=CAN_BS2_5tq;
  CAN_InitStructure.CAN_Prescaler=50;
得波手率为100K
103 APB2PeriphClock = 36M
  CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
  CAN_InitStructure.CAN_BS1=CAN_BS1_9tq;
  CAN_InitStructure.CAN_BS2=CAN_BS2_8tq;
  CAN_InitStructure.CAN_Prescaler=20;
波手率为100K
CAN通信成功

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

23

帖子

1

粉丝