工具/软件:
大家好、
我必须收到这些 CAN ID 组
-组 1 CAN ID:0x510、0x511、0x512、...、0x519
-组 2 CAN ID:0x520、0x521、0x522、...、0x529
-组 3 CAN ID:0x530、0x531、0x532、...、0x539
我设置三个邮箱、如下所示:
- MSGID (1、2 和 3) 用于接收不同的 CAN ID 组。
ECanbMbox.MBOX1.MSGID.all = 0x54400000;//邮件箱 ID = 0x510
ECanbMbox.MBOX2.MSGID.all = 0x54800000;//邮件箱 ID = 0x520
ECanbMbox.MBOX3.MSGID.ALL = 0x54C00000;//邮件箱 ID = 0x530
- 本地 — 接收-掩码寄存器
ECanbLAMRegs.LAM1.bit.lami = 1; //这允许接收标准帧和扩展帧
ECanbLAMRegs.LAM1.bit.LAM_H = 0x1470;//这允许接收标准帧和扩展帧
ECanbLAMRegs.LAM1.bit.LAM_L = 0xFFFF;//这允许接收标准帧和扩展帧
ecanbLAMRegs.lam2.bit.lami = 1; //这允许接收标准帧和扩展帧
ECanbLAMRegs.LAAM2.bit.LAM_H = 0x14B0;//这就允许接收标准帧和扩展帧
ecanbLAMRegs.lam2.bit.lam_L = 0xFFFF;//这允许接收标准帧和扩展帧
ECanbLAMRegs.LAM3.bit.lami = 1; //这允许接收标准帧和扩展帧
ECanbLAMRegs.LAM3.bit.LAM_H = 0x14F0;//这允许接收标准帧和扩展帧
ECanbLAMRegs.LAM3.bit.LAM_L = 0xFFFF;//这允许接收标准帧和扩展帧
当我运行程序时、所有 CAN ID 帧都由 mailbox3 接收。
如果我注释掉这些行的话
// ECanbLAMRegs.LAAM2.bit.lami = 1; //这允许接收标准帧和扩展帧
// ECanbLAMRegs.LAAM2.bit.LAM_H = 0x14B0;//这就允许可以接收标准帧和扩展帧
// ECanbLAMRegs.LAAM2.bit.LAM_L = 0xFFFF;//这允许接收标准帧和扩展帧
//
// ECanbLAMRegs.LAM3.bit.lami = 1; //这允许接收标准帧和扩展帧
// ECanbLAMRegs.LAM3.bit.LAM_H = 0x14F0;//这允许接收标准帧和扩展帧
// ECanbLAMRegs.LAM3.bit.LAM_L = 0xFFFF;//这允许接收标准帧和扩展帧
我可以在 mailbox1 中接收所有 CAN ID (0x510 到 0x519)。
如果我注释掉这些行的话
// ECanbLAMRegs.LAM3.bit.lami = 1; //这允许接收标准帧和扩展帧
// ECanbLAMRegs.LAM3.bit.LAM_H = 0x14F0;//这允许接收标准帧和扩展帧
// ECanbLAMRegs.LAM3.bit.LAM_L = 0xFFFF;//这允许接收标准帧和扩展帧
我可以在 mailbox2 中接收所有 CAN ID (0x510 到 0x519 和 0x520 到 0x529)。
这意味着较高的邮箱数接收消息的优先级较高。
我的问题:是否可以设置每个邮箱以接收一组上述 CAN ID?
非常感谢您的帮助。