[求助] CAN报文过滤不起作用

fengzhang2002   2013-1-12 17:22 楼主
//设置主机的报文标识符
    MsgObj_zxz.ulMsgID = MSGOBJ_ID_ZXZ;   //报文标识符  
    MsgObj_zxz.ulMsgIDMask = 0x0ff00;           //报文滤波,0不过滤,CAN ID& CAN ID MASK= =帧ID
    // 使能接收消息中断
    MsgObj_zxz.ulFlags = (MSG_OBJ_RX_INT_ENABLE | MSG_OBJ_EXTENDED_ID | MSG_OBJ_USE_ID_FILTER);
    //设定数据的大小以及对应的变量
    MsgObj_zxz.ulMsgLen = 2;                //数据为2个字节      
    MsgObj_zxz.pucMsgData = msg_zxz;      //使用变量msg_zxz
    // 配置为接收消息对象
    CANMessageSet(CAN0_BASE, MSGOBJ_NUM_ZXZ, &MsgObj_zxz, MSG_OBJ_TYPE_RX);           //设置为接收   

设置了报文过滤,但是目前是所有的报文都能接收到,什么原因,请解答,谢谢!

回复评论 (5)

回复 楼主 fengzhang2002 的帖子

#define MSG_OBJ_USE_EXT_FILTER  (0x00000020 | MSG_OBJ_USE_ID_FILTER)

****.ulFlags =
        MSG_OBJ_RX_INT_ENABLE | MSG_OBJ_EXTENDED_ID | MSG_OBJ_USE_ID_FILTER |
        MSG_OBJ_USE_EXT_FILTER;

[ 本帖最后由 Study_Stellaris 于 2013-1-14 10:12 编辑 ]
点赞  2013-1-14 10:11

回复 沙发 Study_Stellaris 的帖子

这样设已经试过了,还是不起作用
点赞  2013-1-14 17:28

回复 沙发 Study_Stellaris 的帖子

是个问题,我也遇到过,求详细解答。
点赞  2013-1-15 09:13

回复 4楼 benbending 的帖子

主要就是这两个寄存器的配置
CAN_O_IF1MSK1
CAN_O_IF1MSK2
点赞  2013-1-16 10:50

回复 5楼 Study_Stellaris 的帖子

配置过没有作用,照常都可以接收到。
点赞  2013-1-16 13:25
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复