搜索
查看: 2213|回复: 1

[讨论] 关于STM32双路CAN1、CAN2滤波器分配CAN2SB

[复制链接]

该用户从未签到

2

主题

2

帖子

0

蝴蝶豆

初级会员

最后登录
2018-12-7
发表于 2017-11-28 17:10:45 | 显示全部楼层 |阅读模式
芯片:STM32F429 事由:因为之前一直使用CAN1,这次CAN1的端口被占用了,所以接到了CAN2上,所以就涉及到了CAN1、CAN2共用的滤波分配问题。CAN2的起始滤器编号定义在CAN_FMR中的CAN2SB中,官网资料是这样叙述的:


当CAN2SB[5:0] = 28时,所有CAN1的滤波器都能够被使用,我理解的是都能够被CAN2使用,此时CAN1、CAN2共用这28个滤波器。
当CAN2SB[5:0] = 0时,不会为CAN1分配任何滤波器,我理解的是都分配给CAN2使用,此时CAN2独用这28个滤波器。
然而,当我分别把这个值设为28和0时,发现结果一样的,CAN1、CAN2都可以用这28个滤波器。这我就纳闷了,并对其他的值的实际效果作了怀疑。于是全部做了测试。由于CAN2SB[5:0],占了6位,最大值是63,所以测试时没我没局限在28,而是从0测到63.结果如下图:

总结一下测试结果:
当值 num为0时,CAN1、CAN2可用全部28滤波器;
当1<= num <= 27时,CAN1使用编号0 ~ num-1滤波器,CAN2使用编号num-1 ~ 27的滤波器,符合文档描述。
当28<= num <=58时,CAN1、CAN2可用全部28滤波器;
当59<= num <= 63时,CAN1使用编号0 ~ num-59滤波器,CAN2使用编号num-59 ~ 27的滤波器。

疑问1:当num = 0时,与文档描述不符,还是我理解的不对?
疑问2:当num >= 28时,CAN1、CAN2可用全部28滤波器,为什么当num >= 59后又发生了变化呢?我看了一下58、59的二进制并没有特别啊。
有没有研究过这个问题的朋友出来发表一下意见。
还请ST的FAE看到后,给我们做一下解答。

CAN2SB

CAN2SB

测试结果

测试结果
回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

蝴蝶豆

新手上路

最后登录
2021-11-25
发表于 2020-11-19 17:50:05 | 显示全部楼层
顶一下,,,,三年了都没人回复!!!!!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-29 08:09 , Processed in 1.145259 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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