CAN通讯扩展帧设置问题

2019-08-22 14:15发布


设置发送函数中的       
        //TxMessage.StdId=0x12;                        // 标准标识符
        TxMessage.ExtId=0x120DC0DB;                        // 设置扩展标示符
        TxMessage.IDE=CAN_Id_Extended;         // 扩展帧
        TxMessage.RTR=CAN_RTR_Data;                // 数据帧
后在设置
        CAN_FilterInitStructure.CAN_FilterNumber=0;        //过滤器0
        CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;         //屏蔽位模式
        CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;         //32位宽
        CAN_FilterInitStructure.CAN_FilterIdHigh=0x120D;        //32位ID
        CAN_FilterInitStructure.CAN_FilterIdLow=0xC0DB;
        CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;//32位MASK
        CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;
        CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//过滤器0关联到FIFO0
        CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;//激活过滤器0

        CAN_FilterInit(&CAN_FilterInitStructure);                        //滤波器初始化
后上位机发送扩展ID为0x120DC0DB的数据指令给开发板,在我LCD液晶上显示不出接收到的数据,表明没有仲裁成功如果改为:
        CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;//32位MASK
        CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
则可以成功接收到数据,但是起不到屏蔽ID 的作用了,至今找不到问题在哪里?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。