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条回答
hi我歌月徘徊
1楼-- · 2019-08-23 04:13
hi我歌月徘徊 发表于 2017-2-28 12:09
嗯嗯  多谢  顺便再问一下 左对齐怎么设置的 ?
    CAN1_Handler.pTxMsg->StdId=0xffff>>5;        // ...

CAN_FilterInitStructure.CAN_FilterIdHigh= (((u32)0x1314<<3)&0xFFFF0000)>>16;    //要过滤的ID高位
    CAN_FilterInitStructure.CAN_FilterIdLow= (((u32)0x1314<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位

这样的方式解决了
MIFANHTS
2楼-- · 2019-08-23 08:32
http://openedv.com/forum.php?mod ... ghlight=STM32%2Bcan
看看这个帖子的资料就懂了。
渐近的线
3楼-- · 2019-08-23 12:19
楼主,为什么我自己做的板子和can分析仪通信不了,电路板发送数据,分析仪接收不到,但是板子的回环模式可以自发自收,我按照原子的程序改了一下来编程的;还有用开发板连接CAN分析仪,启动设备直接提示启动设备失败,这是什么原因?
wx389390063
4楼-- · 2019-08-23 16:29
渐近的线 发表于 2017-4-9 16:56
楼主,为什么我自己做的板子和can分析仪通信不了,电路板发送数据,分析仪接收不到,但是板子的回环模式可 ...

测试一下分析仪在回环模式下,可以自发自收不?
渐近的线
5楼-- · 2019-08-23 20:40
 精彩回答 2  元偷偷看……
775083111
6楼-- · 2019-08-24 01:04
楼主,正确的贴一下吧,在学习

一周热门 更多>