主题中讨论的其他器件:HALCOGEN、 ISO1042DWEVM
我使用 Launchpad 尝试使用 pCAN-View 软件发送和接收 CAN 消息。 我使用的是 ISO1042DWEVM 收发器模块。 它将从 TX 消息框发送消息、但 RX 消息框不会接收消息。 以下是 HalCoGen 中的设置:
我已经用与示例类似的方式设置了前四个邮箱。
下面是我要使用的代码:
/*用户代码开始(0)*/ /*用户代码结束* /*包含文件*/ #include "sys_common.h" /*用户代码开始(1)*/ #include "system.h" #include "ESM.h" #define D_size 9 uint8 TX_DATA[D_SIZE]={'tx4'、0x4'、0x4'、0x4'、0x4'、0x4'、0x4'、0x4'、 0x4'、0x4'、0x4'、0x4'、0x4'、0x4'、0x4'、0x4'、0x4'、0x4'、0x4' 0x7、0x0、0x0、0x0}; uint8 TX_data2[D_SIZE]={0x5、0x7、0x0、0x0、0x5、 0x7、0x0、0x0、0x0}; uint8 Rx_data[D_size]={0}; uint32错误= 0; uint32校验包(uint8 * src_packet、uint8 * dst_packet、uint32 psize); //*用户代码结束* //@ @ @fn void main (默认为空*应用函数*空白*。*默认为空*应用程序主函数。 * *此函数在启动后调用。 *用户可以使用此函数来实现应用程序。 */ /*用户代码开始(2)*/ /*用户代码结束*/ int main (void) {// *用户代码开始(3)*/ /*初始化 CAN 1和2 */ canInit();/* CAN1 -> CAN2 */ CAN1上的/*发送*/ canTransmit (canREG1、canMESSAGE_BOX1、TX_DATA); canTransmit (canREG1、canMESSAGE_BOX2、TX_DATa1); canTransmit (canREG1、canMESSAGE_box3、TX_data2); /*。 等待 CAN1 *上的报文接收 while (!canIsRxMessageArrived (canREG1、canMESSAGE_BOX4)); canGetData (canREG1、canMESSAGE_BOX4、Rx_DATA);//在 CAN1上接收* /*检查接收到的数据模式*/ //error = checkPackets (&TX_DATA[0]、&Rx_DATA[0]、D_SIZE); canTransmit (canREG1、canMESSAGE_BOX2、Rx_DATA); /*... 永久运行*/ while (1); /*用户代码结束*/ 返回0; }
我的问题是我可以运行程序、它将从消息框1、2和3发送消息、但当我从消息 ID 为0x2的 pCAN-View 发送恒定消息时、它会持续停留在 while 循环中、等待 RX 消息到达。
我已经能够获得一个 PSoC 微控制器来从 pcan 视图接收消息、但 TI 处理器似乎没有响应来接收消息。 在处理器上的 CAN 初始化或我需要使用的其他一些代码中、我需要更改什么吗? 我没有将处理器设置为使用基于中断的 CAN。