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:canUpdateID Halcogen 函数出现问题

Guru**** 2747375 points

Other Parts Discussed in Thread: HALCOGEN, TMS570LS1227

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/949809/tms570ls1227-issue-with-canupdateid-halcogen-function

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

我正在使用 TMS570LS1227和 Halcogen 生成的代码通过 CAN1发送消息。

我有一个项目、我首先在其中初始化 CAN 模块:

canInit();

然后更新其中一个邮箱的 CAN ID:


canUpdateID (canREG1、canMESSAGE_BOX1、(uint32_t) 0x20000000U |(uint32_t)((((uint32_t) 0x4C0U)<<(uint32_t) 18U));

然后、我每 x 毫秒传输一次邮箱:

canTransmit (canREG1、canMESSAGE_BOX1、data);

我发现、如果我启用了一个邮箱(仅在 Halcogen 中启用了邮箱1)、那么之前的函数序列将不会按预期工作、并且消息根本不会传输。 但是、如果我在 Halcogen 中也启用邮箱2 (即使我没有使用它)、它就会按预期工作、并且使用正确的 CAN ID 成功发送消息。

我还发现、如果我修改 canUpdateID 函数、使其使用 IF1而不是 IF2 (完全相同的函数、只需通过 IF1更改 IF2)、那么之前的函数序列将再次按预期工作。 我是否遗漏了某个东西、或者这是否是一个错误?

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

    您好 Javier、

    上周我也注意到这个问题、但我还没有弄清楚导致这个问题的原因。