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.

F28377D CAN 用drivelib 里的函数 怎么读取接受邮箱的msgID

Other Parts Discussed in Thread: C2000WARE

F28377D CAN 接收到一帧后 , 怎么读取 接收邮箱的msgID

  • 您可以通过都 CAN_IFxARB 寄存器来获取,如CAN_IF1ARB

    其中ID位的说明如下

    Message Identifier
    ID[28:0] 29-bit Identifier ("Extended Frame")
    ID[28:18] 11-bit Identifier ("Standard Frame")
    Note: This bit is write protected by Busy bit.
    Reset type: SYSRSn
  • 您好,我试过用 return(HWREG(CANB_BASE + CAN_O_IF1ARB) & CAN_IF1ARB_ID_M)但结果比不是msgid号
  • 您现在使用接收过滤了吗?参考 e2e.ti.com/.../658527 的回复

    In IFXARB register, there is a 29 bit "ID", it is a identifier for receiver frame, mask have no effect for it, right?

    Answer--> That field holds the Message ID (MSGID). The definition of that field depends on whether the mailbox is a transmit mailbox or a receive mailbox.

    If the mailbox is a transmit mailbox, it holds the MSGID of the frame to be transmitted.

    If the mailbox is a receive mailbox, it holds the MSGID of the frame to be received, after satisfying the filtering criterion (if any).
  • 您好,没有用滤波,配置的跟例程C:\ti\c2000\C2000Ware_1_00_06_00\driverlib\f2837xd\examples\cpu1\can一样,只是我用的是cpu2和canb,例程里可以看到CANA_IF1ARB寄存器的id位,但我的程序跑起来,就ID 位全是0,这是什么原因
  • 请问一下,IF1ARB 和 IF2ARB 有什么区别,是接收object 看 IF1 还是发送object 看IF1