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.

LAUNCHXL-F280049C: 关于DCAN模块中接收邮箱的使用

Part Number: LAUNCHXL-F280049C

你好,

    目前我正在使用例子"can_ex3_external_transmit"。其中,接收邮箱号RX_MSG_OBJ_ID始终设置的是1.如果我在应用中,第一帧通过邮箱1接收,然后使用函数CAN_setupMessageObject,将接收邮箱号改为2,那么第二帧是通过邮箱1接收?还是通过邮箱2接收?据我分析,由于第一帧被邮箱1接收后,邮箱1的有效位仍然保持有效,即便我配置使邮箱2有效,第二帧仍然被邮箱2接收,因为邮箱1的优先级更高。是这样吗?如果是这样,怎么才能实现我的应用呢?第一帧用邮箱1接收,第二帧用邮箱2接收.....

   谢谢,盼尽快回复!!

  • 第二帧仍然被邮箱2接收,因为邮箱1的优先级更高

    这儿写错了,应该是“第二帧仍然被邮箱1接收,因为邮箱1的优先级更高”

  • 你好,问题已经收到,我会尽快回复你。

  • 第二帧仍将进入邮箱 1。

    为确保第二帧专用于邮箱 2,必须通过添加标志参数 CAN_MSG_OBJ_USE_ID_FILTER(对于 STD ID)或 CAN_MSG_OBJ_USE_EXT_FILTER(对于 EXT ID)来启用消息过滤,以及 当使用函数 CAN_setupMessageObject() 定义消息对象 2 时,将mask value设置为 1(设置为 0 将忽略相应位的 ID 值)。 这样,从帧 2 接收到的具有确切消息 ID 的帧将被保证只发送到消息对象 2。