您好!
我有一个关于 CAN FIFO 缓冲器接收消息的一般问题。 如果我将 CAN 报文对象1、2、3和4配置为 FIFO 缓冲区来接收相同的 CAN ID 报文、这是否意味着必须将报文对象4设置为缓冲区的末尾?
根据您的参考手册、消息将首先存储在对象1中、然后存储在对象2和3中。 对象4将是最后一个、这意味着它是缓冲区的末尾。 如果我将对象1定义为缓冲区的末尾、会发生什么情况?
谢谢、
Kaiyu
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 FIFO 缓冲器接收消息的一般问题。 如果我将 CAN 报文对象1、2、3和4配置为 FIFO 缓冲区来接收相同的 CAN ID 报文、这是否意味着必须将报文对象4设置为缓冲区的末尾?
根据您的参考手册、消息将首先存储在对象1中、然后存储在对象2和3中。 对象4将是最后一个、这意味着它是缓冲区的末尾。 如果我将对象1定义为缓冲区的末尾、会发生什么情况?
谢谢、
Kaiyu
我自己没有尝试过此操作、但我怀疑数据不会存储在后续消息对象(2、3和4)中。 来自 TRM:"由于消息的隐式优先级
编号最小的报文对象将是 FIFO 缓冲区的第一个报文对象。 FIFO 缓冲区中除最后一个报文对象外的所有报文对象的 EOB 位都必须编程为0。 FIFO 缓冲区中最后一个报文对象的 EOB 位设置为1、将其配置为块的末尾。"
另请注意 www.ti.com/lit/SPRZ412中描述的勘误表"在 DCAN FIFO 模式期间、接收到的消息可能会在 FIFO 缓冲区中按顺序放置"。