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.

[参考译文] TMS570LS1227:CAN 初始化以从 DCAN 通道1发送消息

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/621768/tms570ls1227-can-initialization-to-send-messages-from-dcan-channel-1

器件型号:TMS570LS1227
主题中讨论的其他器件:HALCOGEN

您好!

我将 Hercules 开发套件与 TMS570结合使用、我想使用微控制器以1Mbps 的速率通过 CAN 总线发送多条消息、而无需立即接收任何消息。 我将使用峰值 PCAN Pro CAN 转 USB 器件以及示波器来监控总线。

我关注了本 TI 教程的发送方部分(无接收器、我使用 CAN 器件和示波器监控流量): https://training.ti.com/hercules-how-tutorial-can-communication 

我执行了以下步骤:

  1. 在 Halcogen 中、仅启用驱动程序启用下的 CAN1驱动程序。  
  2. 在 Halcogen 中、 将位速率设置为1000并在 CAN1 General 下禁用自动重发送和启用标识符扩展
  3. 在 Halcogen 中、将 ID 为0x18EFFD88的消息1配置的 TX 和激活线路设置为  
  4. 生成了源文件和头文件(随附的是 halcogen 生成的 CAN.c 文件) e2e.ti.com/.../5700.can.c
  5. 创建了一个项目、并在 sys_main.c 中编写了以下程序:
#include "sys_common.h"
#include "CAN.h"


int main (void)
{

int i = 0;
const uint8 message[8]={0x25、0x00、0x00、0xFF、0xFF、 0xFF、0xFF、0xFF};
canInit();
canUpdateID (canREG1、 canMESSAGE_BOX1、0x78EFFD88);
for (i= 0;i < 10000;i++)
{
canTransmit (canREG1、 canMESSAGE_BOX1、消息);
}

返回0;
}




void canErrorNotification (canbase_t *节点、uint32通知)
{




void canStatusChangeNotification (canbase_t *节点、uint32通知)
{




void canMessageNotification (canbase_t *节点、uint32 MessageBox)
{

} 


我的问题是、当我运行该程序时、不仅使用 PCAN 的监控程序没有收到消息、而且我也不会使用示波器在总线上看到任何数据。 我唯一能想到的是、我没有初始化 UC 的某些方面、但我不确定如何继续调试此问题。 如果有人能向正确的方向指出我、那将不胜感激!

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

    您的代码对我来说看起来很好。 如果您使用 HDK、则可以使用 DCAN1和 DCAN2进行通信:使用2根导线(CANH 和 CANL)连接 DCAN1 (J2)和 DCAN2 (J2)、并将 DCAN2 MSGBOX1配置为 RX。 如果您使用 Launchpad、请尝试 DCAN 内部环回。