本帖最后由 mildlioncn 于 2009-11-1 09:22 编辑
驱动器用的是TJA1050,做了两块板子,进行CAN总线通讯实验。一发一收正常,速率大约为100K,并且启动了滤波器。但是我改了两个都发送,并且都可以接收对方的数据,就不能正常工作了。好像收不到数据了。估计可能总线竞争吧。在论坛里找了半天看有无解决办法,好像有一篇和我的类似,但没有给出解决方法。论坛里都说可能是应用层的问题,但在应用上应注意什么问题呢????
波特率肯定没有问题的,否则没有办法一发一收。
通信距离近得很,可以不计。
100K也不算太快。
接收采用的中断方法,在ISR里也仅仅是把数据放在缓冲区里,没有做别的事情。
发送采用查询的方式。
标准帧的格式。一个为0x100,另一个0x110。
我想有没有可能是因为总线竞争导致总线关闭,CAN控制器**了???
就是不知道在应用层里有些什么设置可以解决总线竞争的问题。
谢谢了。 |