CAN列表模式问题求解?

2019-08-22 14:19发布

       我看了很多的帖子,遇到一个问题,就是CAN通信的时候,在屏蔽位模式下,按照原子的设置(所有的都接收),是可以接收到CAN分析仪发的报文的;
但是我自己设置为列表模式(32bit),也就是发送的报文与FxR1或者FxR2其中之一相同就可以接收,反之则舍弃掉!
现在我的设置如下:
CAN_FilterInitStructure.CAN_FilterNumber=0; //过滤器0/
// CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;  //屏蔽位模式
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdList;  //列表模式
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;  //32位宽
CAN_FilterInitStructure.CAN_FilterIdHigh=0x0100; //32位ID
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0200;//32位MASK
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//过滤器0关联到FIFO0
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;//激活过滤器0
CAN_FilterInit(&CAN_FilterInitStructure);   //滤波器初始化

我设置CAN分析仪的ID为:



但是CAN分析仪发送的数据,战舰开发板收不到;战舰发送的数据CAN分析仪可以接收到(通信正常),我按照自己理解的滤波器这块,整不出答案,请大神帮忙解答一下!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
wx389390063
1楼-- · 2019-08-22 15:31
 精彩回答 2  元偷偷看……
hi我歌月徘徊
2楼-- · 2019-08-22 18:34
请问软件当中的 接收端的帧ID=0x12,在程序当中是哪里配置的,原子的例程里也没看到呢?
wx389390063
3楼-- · 2019-08-22 18:56
hi我歌月徘徊 发表于 2017-2-23 16:59
请问软件当中的 接收端的帧ID=0x12,在程序当中是哪里配置的,原子的例程里也没看到呢?

在函数Can_Send_Msg()  这里面定义的ID  你可以去看看
hi我歌月徘徊
4楼-- · 2019-08-22 19:04
wx389390063 发表于 2017-2-24 08:42
在函数Can_Send_Msg()  这里面定义的ID  你可以去看看

多谢 这个在多机通讯的时候 可以理解为从机的地址吧
wx389390063
5楼-- · 2019-08-22 19:06
hi我歌月徘徊 发表于 2017-2-25 09:09
多谢 这个在多机通讯的时候 可以理解为从机的地址吧

http://www.openedv.com/thread-89611-1-1.html   讲解的很好,可以去看看
hi我歌月徘徊
6楼-- · 2019-08-22 22:29
 精彩回答 2  元偷偷看……

一周热门 更多>