偶滴CAN总线发送等都OK了,但是再接受这个过滤器上碰见问题了,我没有使用全通模式:
CAN_FilterInitStructure.CAN_FilterIdHigh=//0x0000;////32位ID
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;//32位MASK
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
而是采用采用了全匹配方案,由于我的站点号是接受外部大约10个设备发过来的数据,所以,我就不知道具体怎么设置这个初始化过滤器组了,难道需要我全通模式,然后在接收中断里一个一个去判断这些EID与SID号么?比如,我的EXT.ID=0X06080000,这高四位是6号站点的信息,主机号是1,所以是0608,低4位是TCW是字宽控制位,是变动的。那我得怎么设置,10个不同站点的初始化合适啊?请熟知者帮忙解答,谢谢。
下面是我的设置,不知道对不对:
CAN_FilterInitStructure.CAN_FilterIdHigh=(((u32)0x06080000<<3)&0xFFFF0000)>>16;////32位ID
CAN_FilterInitStructure.CAN_FilterIdLow=(((u32)0x06080000<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0XFFFF;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;//32位MASK,使用全匹配方案;
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;
|