p; //设置过滤器组0,范围为0~13 CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdList; //设置过滤器组0为标识符列表模式 CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit; //设置过滤器组0位宽为32位 //设置屏蔽寄存器,这里当标识符寄存器用 CAN_FilterInitStructure.CAN_FilterIdHigh=std_id<<5) ; //为什么左移5位?与上面相同道理,这里不再重复解释 CAN_FilterInitStructure.CAN_FilterIdLow=0|CAN_ID_STD; //设置标识符寄存器低字节,CAN_FilterIdLow的ID位可以随意设置,在此模式下不会有效。 //设置标识符寄存器 CAN_FilterInitStructure.CAN_FilterMaskIdHigh=((ext_id<<3)>>16) & 0xffff; //设置屏蔽寄存器高字节 CAN_FilterInitStructure.CAN_FilterMaskIdLow=((ext_id<<3)& 0xffff) | CAN_ID_EXT; //设置屏蔽寄存器低字节 CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0; //此过滤器组关联到接收FIFO0 CAN_FilterInitStructure.CAN_FilterActivation=ENABLE; //激活此过滤器组 CAN_FilterInit(&CAN_FilterInitStructure); //设置过滤器
4)16位位宽屏蔽模式
5)16位位宽列表模式
|