can_filter_init_struct.filter_activate_enable = TRUE;
can_filter_init_struct.filter_number = 0;
can_filter_init_struct.filter_fifo = CAN_FILTER_FIFO0;
can_filter_init_struct.filter_bit = CAN_FILTER_32BIT;
can_filter_init_struct.filter_mode = CAN_FILTER_MODE_ID_MASK;
/*Extended identifier + Mask Mode + Data/Remote frame: id/mask 29bit --------------*/
can_filter_init_struct.filter_id_high = (((1 << 3) >> 16) & 0xFFFF);
can_filter_init_struct.filter_id_low = ((1 << 3) & 0xFFFF) | 0x04;
can_filter_init_struct.filter_mask_high = ((0x0000001f << 3) >> 16) & 0xFFFF;
can_filter_init_struct.filter_mask_low = ((0x0000001f << 3) & 0xFFFF) | 0x04;
使用AT32 Work Bench配置CAN过滤器,(((1 << 3) >> 16) & 0xFFFF);这个地方左移3位然后右移16位,怎么算都是0啊,是不是应该(((1 << 21) >> 16) & 0xFFFF);左移21位
|
您好,感谢反馈,但我没有复现到您说的问题。 方便告知一下您使用的AT32 Workbench具体版本号吗?最新版V1.1.05 还是会出现同样问题吗? 另外,请问可以把AT32Work Bench的.ATWP文件和MDK工程能发我邮箱(410958618@qq.com)分析一下吗?