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.

[参考译文] CAN RX 中断问题

Guru**** 2338080 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/602229/can-rx-interrupt-issue

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

您好!

我正在使用微控制器的片上 CAN2外设来接收 CAN 数据。 我已经为接收配置了49到64的消息、CAN ID 值为0x00到0x0F。 所有 CAN ID 的掩码 为:0x0000000F。

消息框编号 CAN ID 掩码
49 0x00 0x0000000F
50 0x01 0x0000000F
51. 0x02 0x0000000F
52. 0x03 0x0000000F
53. 0x04 0x0000000F
54 0x05 0x0000000F
55 0x06 0x0000000F
(笑声) (笑声) (笑声)
64 0x0F

0x0000000F

CAN 消息的配置如上表所示。  我在10个多小时内无任何问题地收到所有 CAN 消息。  突然、控制器停止接收所有带有消息框编号49的 CAN 消息(带有最后十六进制数字0的任何消息)。 微控制器不会触发这些消息的中断。 (函数 can2HighLevelInterrupt() 不再被调用来处理第49个消息框的消息)所有其他 CAN 消息完全没有问题并触发 ISR。

除了提供的 halcogen 代码之外、我们还必须实现任何寄存器位清除/设置吗? 我们使用的是 HalCoGen 版本 04.06.00

到  目前为止,我们只使用 canGetData()和 canGetID()。

谢谢、此致、

Sreekanth Challa

消息框编号 CAN ID 掩码
49 0x00 0x0000000F
50 0x01 0x0000000F
51. 0x02 0x0000000F
52. 0x03 0x0000000F
53. 0x04 0x0000000F
54 0x05 0x0000000F
55 0x06 0x0000000F
56. 0x07 0x0000000F
57. 0x08

0x0000000F

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

    您好!

    请忽略上述帖子中的第二个表格。 这是一个错误。 请找到随附的 CAN 配置屏幕截图。  我们不使用以下函数。 它们是空的。

    canErrorNotification()

    canStatusChangeNotification()

    此致、

    Sreekanth Challa

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

    您能否检查 DCAN2的错误状态寄存器以查看是否存在与 MB1相关的错误? 即、可能存在溢出或位错误? 每种消息类型的来源是否都来自 CAN 总线上的相同来源、或者它们是否都来自不同的来源? 是否能够连接到 CAN 分析工具(如 CANalyzer)以查看是否正在总线上发送 ID 0x00? 如果您关闭其他 CAN 邮箱和消息、您通过示波器在 CAN 总线上看到什么、MB 49和 ID 0x00是否有有效数据?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Chuck Davenport:

    非常感谢您的支持。 它帮助我们调试了该问题。

    此致、
    Sreekanth Challa