stm32做的CAN通信,在波特率上遇到的问题?

sucan007 2012-04-25 03:55:05
小弟,用STM32F103VBT6做的CAN通信模块,MCU是STM32,CAN的收发是pca82c250,隔离芯片是ADUM1201,通信是:我的CAN模块与PCI的CAN采集卡通信(型号:CAN200);
用串口做的“透传”实验,CAN的通信模式为中断接收,中断发送;硬件环境大致是上面的内容了
问题来了:通信的波特率在800KHz以内的时候,通信都正常,串口发的数据,都可以通过CAN模块发给CAN采集卡,接收同样也可以;但是,当用1MHz的波特率通信时,一旦用串口发CAN数据,CAN采集卡就是收到16条数据,而且是固定的16条数据,同时CAN模块的接收无数据了;
有人遇到过上面的问题吗?
...全文
645 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sucan007 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

http://www.360doc.com/content/11/1114/23/4083881_164395528.shtml
[/Quote]
你发的资料,我看了,都不符合我的情况啊,PCK1=36Mhz CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1=CAN_BS1_10tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
CAN_InitStructure.CAN_Prescaler=2;
得到1Mhz的 Baud rate , 不行的啊
当用
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1=CAN_BS1_7tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
CAN_InitStructure.CAN_Prescaler=3;
得到800KHZ的 Baud rate ,就是可以的,其他的波特率也都可以的,
120的电阻加着的, 还有什么办法吗?

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧