打印
[STM32F2]

CAN发送和CAN中断接收冲突

[复制链接]
3606|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
雪雨风霜|  楼主 | 2015-7-4 12:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是STM32F207   cube版本的库函数,CAN使用的是一般发送,中断接收。两个相同的开发板A,B做实验。
1,A在while(1)中直接每隔5ms发送一个CAN报文帧,B中断接收CAN报文,没有问题;
2,A在while(1)中直接每隔1ms发送一个CAN报文帧,B中断接收CAN报文,没有问题;
3,A在while(1)中直接无延时循环发送一个CAN报文帧,B中断接收CAN报文,没有问题;

4,A在while(1)中直接每隔5ms发送一个CAN报文帧,B中断接收CAN报文同时每隔10ms发送一帧数据,出现的现象是:B的CAN中断会在某一时刻FMP一直显示为03,接收邮箱一直是满的,当B不发送报文时,B恢复正常;

5,A在while(1)中直接每隔5ms发送一个CAN报文帧,B中断接收CAN报文之后发送一帧数据,没有问题。

可以得到的基本结论是,两个相同的板子之后,不管发送端发送的速度多块,接收端都能正常收到数据;一旦接收发送同时进行时,就会出现接收中段进不去的想象。

不知道可有人遇到这一种想象,有没有解决方法,谢谢。
沙发
小小刀| | 2015-7-27 09:32 | 只看该作者
还真没有遇到过这样的问题,你用的是什么硬件啊?ST的开发板吗,如果能上传软件的话,或许能帮你看看。

使用特权

评论回复
板凳
zchong| | 2020-4-13 20:48 | 只看该作者
最近用CAN,今天似乎也出现了类似的问题,我是两侧对发,有时候发现一侧收不到数据,具体原因正在查找中。

使用特权

评论回复
地板
hufuju| | 2020-4-14 08:38 | 只看该作者
CAN总线要注意个事:1、终端要接电阻(120欧姆),2、发送的波特率和发送时间间隔,否则可能会异常。

使用特权

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

本版积分规则

5

主题

14

帖子

2

粉丝