This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LS1224:可以发送消息、但赢得了#39;t 接收消息

Guru**** 2387830 points
Other Parts Discussed in Thread: HALCOGEN, ISO1042DWEVM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/906786/tms570ls1224-can-will-send-messages-but-won-t-receive-them

器件型号:TMS570LS1224
主题中讨论的其他器件:HALCOGENISO1042DWEVM

我使用 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。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Aaron、您好!

    配置对我来说很好。 您是否尝试过不同的波特率? CAN 总线状态(ES 寄存器)是什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、QJ Wang

    我已经在500kbps 的速率下测试了 CAN、它仍然在 TX 上发送消息、但在那个 while 环路中没有接收到任何内容。

    ES 寄存器正在报告0x7、我无法立即找到每个位的含义、必须查看文档。

    编辑:在文档中找到 ES 寄存器、显示0x7表示自此以来没有任何错误、并且每次读取时它都会复位到0x7。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Aaron、您好!

    您是否解决了 CAN RX 问题?