打印
[STM32F1]

STM32 CAN滤波器设置请教~~~急~~~~

[复制链接]
1393|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yang5223536|  楼主 | 2015-11-25 14:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有木有大神指导下~
我想滤标准CAN ID为 0x079B 的数据(一帧数据,多字节)
这是我的滤波器设置:
    CAN_FilterInitTypeDef  CAN_FilterInitStructure;
    u16 maskValue = 0x7FF;

    CAN_FilterInitStructure.CAN_FilterNumber = 1;
    CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
    CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_16bit;
    CAN_FilterInitStructure.CAN_FilterIdHigh = id1 << 5;
    CAN_FilterInitStructure.CAN_FilterIdLow = id2 << 5;
    CAN_FilterInitStructure.CAN_FilterMaskIdHigh = maskValue << 5;
    CAN_FilterInitStructure.CAN_FilterMaskIdLow = maskValue << 5;
    CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_FIFO0;
    CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;

请问,为什么我没有滤到?是不是我的设置有问题?还是我需要在设置别的STM32库函数?
    CAN_FilterInit( &CAN_FilterInitStructure );
沙发
yang5223536|  楼主 | 2015-11-25 18:02 | 只看该作者
以解决~ 自己可以给自己分不。。。

使用特权

评论回复
板凳
airwill| | 2015-11-25 22:59 | 只看该作者
滤波器的说法是不合适的, 应该称过滤器。
STM32 的过滤器有过滤方式和直接 ID 方式。支持11位和 29 位。
由于要求高位对齐,一定要将 ID 号左移,这个往往容易疏忽。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

23

帖子

0

粉丝