大家好。 我有2个微控制器、并且希望在这两个微控制器之间进行 DCAN 通信。 我使用 CAN 收发器 MCP2551、所有硬件均已正确接线。 我认为这应该是软件问题。
我按照官方 TI 培训提供的教程进行操作、但该教程不起作用。
发送代码的主要部分是
canInit();
canTransmit (canREG1、canMESSAGE_BOX1、TX_DATA);
while (1);
接收器代码的主要部分是
canInit();
while (!canIsRxMessageArrived (canREG1、canMESSAGE_BOX1));
while (1); //在此处设置断点、它不执行
正如我在注释中所说、我在 while (1)处设置断点;当我传输时、它不执行。
我使用示波器对其进行故障排除、首先、我检查传输微控制器的 Tx 引脚、然后发出数据。 我检查接收微控制器的 Rx 引脚是否存在数据接收。 但是、它不执行断点行。
我查看技术文档、我认为应该是初始化问题还是 CAN 协议问题? 或者、您能给我一些关于如何解决问题的想法吗? 我怀疑驱动程序代码有问题,canTransimit(...) 功能实现错误? 如何通过直接访问 CAN RAM 来发送消息和接收消息? 可以提供一些示例代码吗?
请提供帮助、谢谢。