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.

280049C CAN通信配置问题

你好!请问280049C 接收多个不连续CAN_ID时如何进行滤波设置,我不想接收所有的ID数据,只想选择性接收,例如:CAN_ID =0x474, 0x10d,0x30d,0x08c,0x341,0x341,0x467,0x371,如何在以下配置好?谢谢!

CAN_setupMessageObject(CANA_BASE, 14, CAN_ID, CAN_MSG_FRAME_STD,
                           CAN_MSG_OBJ_TYPE_RX, 0, CAN_MSG_OBJ_RX_INT_ENABLE,
                           Can_DATA_LENGTH);

  • 看一下这个帖子中的回复是否有所帮助:e2echina.ti.com/.../188269
  • 谢谢!我刚看了那个帖子,我是可以接收到所有的数据,但是我只想接收指定的CAN_ID,例如:CAN_ID =0x474, 0x10d,0x30d,0x08c,0x341,0x341,0x467,0x371,这些CAN_ID全部分配在14号邮箱,请问这个可以实现吗?如果可以实现,如何配置?谢谢
    CAN_setupMessageObject(CANA_BASE, 14, CAN_ID, CAN_MSG_FRAME_STD,
    CAN_MSG_OBJ_TYPE_RX, 0, CAN_MSG_OBJ_RX_INT_ENABLE,
    Can_DATA_LENGTH);
  • CAN通信中的每个消息都是有一个ID的,在总线上是广播出去的,接收邮箱都可以收,至于是否要进行处理,就要用到接收屏蔽过滤码了。

    可以配置屏蔽过滤只检查ID的高25位符合,ID的低3位不管,那么低3位从0~7的消息就都可以发到这个邮箱了。接收到数据后再根据ID低3位判断是那个主机发送的。

    具体您可以看一下www.ti.com.cn/.../zhcu039.pdf 的 20 接受滤波器 以及 接受屏蔽使能位,AME (MSGID.30)

    AME 接受屏蔽使能位。

    AME 只用于接收邮箱。它不能被设置为自动回复 (AAM[n]=1,CANMD[n]=0) 邮箱,否则邮箱运行状态未定义。 该位不能通过消息接收被修改。

    1 使用相应的接受屏蔽。
    0 没有使用接受屏蔽,所有标识符位必须与接收消息相匹配。


    CAN通信的基本原理是一致的