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.

[参考译文] TMS570LS3137:canIsRxMessageArgired 函数问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1077035/tms570ls3137-canisrxmessagearrived-function-issue

部件号:TMS570LS3137

您好,

我想知道如何使用 CAN.h 的 canIsRxMessageArgired 函数 我正在轮询模式下使用 CAN 接口,因此我正在检查 CAN 缓冲区中的新数据。 但是,canIsRxMessageArgired 每次返回'0x1'(我知道如果 没有收到数据,此函数必须返回0)。 在错误地解释了这一点之后,如何清除 Rx CAN 缓冲器并使用 canIsRxMessageArgired 而不出问题?

谢谢,此致,

莱安德罗

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

    NewDat 位设置为表示已接收新数据。 CPU 读取消息对象时应重置 NewDat 位。

    通常,CPU 会先将0x1F 写入命令 寄存器的位[23:16],然后将消息对象的编号写入位[7:0]。 该组合将从 消息 RAM 中接收到的整个消息传输到接口寄存器集。 此外,BITS NewDat 和 IntPnd 在 消息 RAM 中被清除。

    node->IF2CMD = 0x17U;

    /**-将数据复制到 IF2 */
    /*SAFEYMCUSW 93 S MR:6.1,6.2,10.1,10.2,10.3,10.4 <批准>“LDRA Tool Issue”*/
    node->IF2NO =(uint8) MessageBox;

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

    谢谢 QJ,

    非常有用! 此致