提交 ff36a39d 编写于 作者: ZZJ!'s avatar ZZJ! 提交者: guo

[bsp/stm32] fix the bug of can filter conflict

上级 8af8decb
......@@ -335,10 +335,25 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
{
if (filter_cfg->items[i].hdr == -1)
{
drv_can->FilterConfig.FilterBank = i;
/* use default filter bank settings */
/**
* because can1 and can2 use the same filter groups,
* separate the groups of can1 and can2, to prevent being covered.
*/
if (drv_can->name == "can1")
{
/* can1 banks 0~13 */
drv_can->FilterConfig.FilterBank = i;
}
else if (drv_can->name == "can2")
{
/* can1 banks 14~27 */
drv_can->FilterConfig.FilterBank = i + 14;
}
}
else
{
/* use user-defined filter bank settings */
drv_can->FilterConfig.FilterBank = filter_cfg->items[i].hdr;
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册