TI中文支持网
TI专业的中文技术问题搜集分享网站

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

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

Susan Yang:您可以通过都 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

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

Charles Ji:

回复 Susan Yang:

您好,我试过用 return(HWREG(CANB_BASE + CAN_O_IF1ARB) & CAN_IF1ARB_ID_M)但结果比不是msgid号

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

Susan Yang:

回复 Charles Ji:

您现在使用接收过滤了吗?参考 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).

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

Charles Ji:

回复 Susan Yang:

您好,没有用滤波,配置的跟例程C:\ti\c2000\C2000Ware_1_00_06_00\driverlib\f2837xd\examples\cpu1\can一样,只是我用的是cpu2和canb,例程里可以看到CANA_IF1ARB寄存器的id位,但我的程序跑起来,就ID 位全是0,这是什么原因

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

Charles Ji:

回复 Susan Yang:

请问一下,IF1ARB 和 IF2ARB 有什么区别,是接收object 看 IF1 还是发送object 看IF1

赞(0)
未经允许不得转载:TI中文支持网 » F28377D CAN 用drivelib 里的函数 怎么读取接受邮箱的msgID
分享到: 更多 (0)