Other Parts Discussed in Thread: HALCOGEN, 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)、那么之前的函数序列将再次按预期工作。 我是否遗漏了某个东西、或者这是否是一个错误?