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.
CAN我现在用tms280049c调试CAN通信,想实现一个邮箱接收两个地址,目前可以通过CAN_readMessage(base,objid,*msgdata)读取接收到的数据,但接收数据帧ID却无法获取,请问我怎样得到一个邮箱接收的不同ID标识符的值?
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通信的基本原理是一致的