CAN接受多ID配置
stm32F407想实现总线上其中一个节点可以接受多个ID数据,can过滤器该怎么配置,目前配置如下uint8_t CanFilterInit(uint8_t board_id)
{
CAN_FilterTypeDef sFilterConfig;
sFilterConfig.FilterBank = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST;
sFilterConfig.FilterScale = CAN_FILTERSCALE_16BIT;
sFilterConfig.FilterIdHigh = (0x600+board_id)<<5;
sFilterConfig.FilterIdLow = 0x000<<5;
sFilterConfig.FilterMaskIdHigh = (0x600+board_id)<<5;
sFilterConfig.FilterMaskIdLow = 0x000<<5;
sFilterConfig.FilterFIFOAssignment = CAN_FILTER_FIFO0;
sFilterConfig.FilterActivation = ENABLE;
sFilterConfig.SlaveStartFilterBank = 14;
if( HAL_OK != HAL_CAN_ConfigFilter(&hcan1,&sFilterConfig))
{
return 1;
}
else
{
return 0;
}
}
可以用专用ID过滤,也可以用屏蔽位过滤。
STM32的CAN总线的标识符过滤器组使用注意事项------->重要
https://www.armbbs.cn/forum.php?mod=viewthread&tid=14449&fromuid=58
(出处: 硬汉嵌入式论坛)
硬汉太强了,啥都研究的透透的
页:
[1]