CAN最早是Bosch用在汽车上的,但其在工业上有应用也非常广泛。这段时间我就一直在折腾这玩意儿呢。
我用的板卡是STM32F103+TJA1050的结构,共三块(分别称为ABC吧)。其中,A与PC串口通信,由PC终端发送字符C,A收到后,应答0x44(就是D了,其实ascii码为0x44)及错误代码,然后通过CAN总线与B、C通信,BC收到指令后,就会把控制LED的GPIO取反,说白了就是不断地发,就可以让LED不停地亮灭。
这个图是从视频中截的,其中红圈儿里的就是A了,另外两块就是BC
错误代码如果是0x00,说明没有错误,如果是0x30,说明是ACK错误。在前面的博文中我就提到,我遇到过ACK错误。这个错误代码是通过uint8_t CAN_GetLastErrorCode(CAN_TypeDef* CANx)函数来读回的。
因为是公司项目,所以具体的代码就不方便共享了,各位也看到了,板子上的公司logo的都用黑胶带粘上了,呵呵
后面我会整理CAN调试的心得与大家分享共勉之~~~
飞言走笔 2014-6-23 12:43
用户444468 2014-6-21 14:31
用户1631751 2013-7-10 16:59