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