最近一直在调CAN通信正常模式下的两块电路板之间的数据收发。两块电路板都是用的STM32F103C8T6 + TJA1050 。
两块板子的LOOPBACK模式均调试通过,现在卡在正常模式下无法稳定的正确收发数据。今天碰到了代码中发送数据0X11,0X22,但是查看KEIL里面的CAN发送的数据不知道为何多出来一个0X20,而且总是在第五个数据的地方出现,但是接收到的数据又是只有0X11,0X22,这是为什么?附图如下:
这个是发送端看到的发送数据
这个是发送端的发送数据代码
这个是接收端接收到的数据
请教各位这个问题是怎么回事呢?
还有问题如:
1.断开两块电路板的CANH和CANL连接,接收端绿灯依然常亮(接收端收到数据并判断正确之后绿灯常亮,否则红灯闪烁),这个如何解释?
2.发送端和接收端上电顺序对结果有没有影响?
3.两块电路板需要共地吗?
最后,希望能有高人指点指点我!!!
---------------------------------
感谢您的解答。
根据您的解答,第一个问题我应该是可以解决的了。
2.当我刚下载好接收端程序的时候,按您的说法就是处于没有接收数据的状态吧,那为什么绿灯也不亮,红灯也不亮呢?
3.您说的轮询模式应该就是很多例程里面所说的查询方法吧?线性模式的话就是中断方法?
4.这个共地的问题我也还在找资料看。
再次感谢您的答疑解惑。
一周热门 更多>