你好!请问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);
Green Deng:
看一下这个帖子中的回复是否有所帮助:e2echina.ti.com/…/188269
,
Fu Mo:
谢谢!我刚看了那个帖子,我是可以接收到所有的数据,但是我只想接收指定的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);
,
Green Deng:
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通信的基本原理是一致的