一个项目都快做完了,才发现其中隐含了一个致命的问题......
CAN总线上有若干个节点,其中一个是主机,其他为从机。主机依次向从机发出指令,每个从机都有自己唯一的地址。通信间采用标准帧,D10-D3作为地址码。于是问题来了。为了实现主机通信时只有对应的从机有相应,设置寄存器如下:
mcp2515_write_register(0x60, 0x20);
mcp2515_write_register(0x70, 0x22);
mcp2515_write_register(0X20, 0XFF);
mcp2515_write_register(0X24, 0XFF);
mcp2515_write_register(0X00, DevID);
mcp2515_write_register(0X08, DevID);
这段程序实现了这一功能,但通信间有一种特殊情况,主机广播指令。此时从机收到指令后不做回复。主机发出的地址码为00H。小弟不会设置了... 帮忙啊! |