硬汉嵌入式论坛

 找回密码
 立即注册
查看: 343|回复: 2
收起左侧

CAN接受多ID配置

[复制链接]

9

主题

18

回帖

45

积分

新手上路

积分
45
发表于 2024-3-7 10:18:29 | 显示全部楼层 |阅读模式
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;
    }
}

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2024-3-7 11:11:18 | 显示全部楼层
可以用专用ID过滤,也可以用屏蔽位过滤。

STM32的CAN总线的标识符过滤器组使用注意事项-------&gt;重要
https://www.armbbs.cn/forum.php? ... 4449&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

9

主题

18

回帖

45

积分

新手上路

积分
45
 楼主| 发表于 2024-3-7 15:14:40 | 显示全部楼层
硬汉太强了,啥都研究的透透的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-2 03:23 , Processed in 0.152972 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表