【发布时间】:2017-07-12 08:34:36
【问题描述】:
我需要在 STM32F103 的 ID List 模式下配置过滤器。我可以在掩码模式下配置它。 Mask Mode有一个示例配置代码:
sFilterConfig.BankNumber = 0;
sFilterConfig.FilterNumber = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = 0x10<<5;
sFilterConfig.FilterIdLow = 0;
sFilterConfig.FilterMaskIdHigh = 0xff<<5;
sFilterConfig.FilterMaskIdLow = 0;
sFilterConfig.FilterFIFOAssignment = 0;
sFilterConfig.FilterActivation = ENABLE;
HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);
它工作正常,我可以接收 ID 为 0x10 的消息。但我还需要在 ID 列表模式下配置任何过滤器。有我尝试使用的代码,但它不起作用:
sFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.BankNumber = 1;
sFilterConfig.FilterNumber = 0;
sFilterConfig.FilterIdHigh = 0x10<<5;
sFilterConfig.FilterIdLow = 0;
sFilterConfig.FilterMaskIdHigh = 0;
sFilterConfig.FilterMaskIdLow = 0;
sFilterConfig.FilterFIFOAssignment = 0;
sFilterConfig.FilterActivation = ENABLE;
HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);
我做错了什么?
【问题讨论】: