hswkcg 发表于 2016-7-28 11:20:26

请教C8051F500的CAN接收多个节点数据问题

各位大神们好!

是这样的,我想让一个CAN节点A接收多个CAN发送节点B、节点C、节点D的数据,并且每个接收的数据都需要进行ID滤波接收。

节点A在接收BCD节点数据时,我设置3个消息对象来接收,每个消息对象的滤波ID分别对应设置。

那么问题来了,我节点A接收到数据后,是要往外读取数据的,可是怎么区分读取BCD的数据?

每次接收数据时都是存储在CAN0IF1DA和CAN0IF1DB中的8个字节中,怎么把BCD的数据分别读取处理?

麻烦各位大神了,谢谢谢谢!!!

hswkcg 发表于 2016-7-29 14:03:31

已解决,查询时用了双重查询。有不清楚的大家可留言一下

hswkcg 发表于 2016-7-28 20:13:10

唉,无语了。。。。

wychao 发表于 2016-7-28 20:23:08

使用三个接收邮箱,每个邮箱设置不同的mask

hswkcg 发表于 2016-7-28 20:31:18

是这个问题太简单,还是这个问题大家遇到的不多。。。。。。这种情况肯定有,而且肯定能够解决,怎么弄啊。。。。。。纠结中。。。

hswkcg 发表于 2016-7-28 20:45:41

wychao 发表于 2016-7-28 20:23
使用三个接收邮箱,每个邮箱设置不同的mask

是的,我不太明白的一点是,假如我用查询的方式来接收数据,按摩我判断是否接收成功,如果成功则去读取数据。问题来了,我怎么知道我读取的数据是哪个节点发送过来的呢???

wychao 发表于 2016-7-29 07:41:38

hswkcg 发表于 2016-7-28 20:45
是的,我不太明白的一点是,假如我用查询的方式来接收数据,按摩我判断是否接收成功,如果成功则去读取数 ...

三个节点,三个邮箱,从哪里来的知道吧?

hswkcg 发表于 2016-7-29 08:45:45

wychao 发表于 2016-7-29 07:41
三个节点,三个邮箱,从哪里来的知道吧?

我明白您的意思,三个邮箱分别接收三种数据。我的意思是,我用查询方式接收时,怎么接收这三种数据?应该查询哪个标志?

因为我在查询成功接收标志位时,只能查询到是否接收到数据,不能知道是哪的数据。我这不太清楚……
页: [1]
查看完整版本: 请教C8051F500的CAN接收多个节点数据问题