1、can底层驱动:zlg fullcan驱动包 2、硬件:lpc2292 can0口+82c250 /magic2200开发箱can0 模块(lpc2290)
3、滤波模式:标准帧单个标识符滤波 此模式下,单个标识符表单元结构如下
31 29 26 16
15 13 10 0
| | | | | | | | | ... | | |
控制器号3bit 禁能1bit 未用2bit 标识符ID11bit
首先:我对这控制器号不太明白,才3bit,肯定不是目标地址之类的东西,但是根据教材上描述,是“使用can控制的编号”,我就想,难道所有can控制器的编号只能在0-7之间?于是,在zlg的开发箱上做了一个简单实验,就是改变这3bit的数值,看对滤波是否有影响,实验当中,pc端can控制卡的设备索引号为0,实验结果表明,改变开发箱can模块的控制器编号,对滤波没有影响,接受与否,由11位id决定。
然后我用自己的板子实验,问题出现了!
改变3bit值,竟然对滤波有影响!只有这三位的值与pc机can卡设备编号相同时(为0),才能正常滤波,我不知道这个“与pc机can卡设备编号相同”巧合还是必须的确要一样才行,但是为什么开发板上又会没有影响呢,程序一抹一样的啊,我不知道是不是有自己没有搞懂的地方。谢谢! |