你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32F4 CAN2只能发送无法接收问题解决

[复制链接]
STMCU小助手 发布时间:2022-3-24 23:15
解决方法:5 l6 z4 O- ~  p$ L" A! [9 Q7 a0 [
1在使能CAN2时钟之前,需要先使能CAN1的时钟
  1. RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);   //先使能CAN14 R7 R  x  p. W4 L( [: r- k

  2. / _! K: c1 L( ?
  3. RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2, ENABLE);   //再使能CAN2
复制代码

  J4 b" Y4 F; W3 o' @2.can2筛选器组从14开始  范围为14-27
: ]" e$ ]& {3 N5 r3 B9 E$ T, x4 U9 ?) n# o5 E; `( z
  1. CAN_FilterInitStructure.CAN_FilterNumber=15;
复制代码
: R  e, O' u7 U5 p# B. P
原理介绍:, Z) s  `( w  Y5 P" {! z1 v
●CAN1:是主bxCAN,它负责管理在从bxCAN和512字节的SRAM存储器之间的通信
' J! w7 R8 e$ H+ p% F+ N4 V$ ^2 M- Y. X# \+ s6 L  ~
● CAN2:是从bxCAN,它不能直接访问SRAM存储器 (见图195), [  J# E' N% x9 |  u: @
" U  F% n3 D4 l- X5 V0 {: k1 \
● 这 2个bxCAN模块共享512字节的SRAM存储器

' [2 e; J( s  _0 x
0 }8 F0 M0 U  J1 v! b问题1原理:CAN2作为从设备无法直接访问SRAM,因此在使能CAN2时钟时,首先要使能CAN1时钟才可以。 % j; p$ u8 ~4 b$ Z* I; j3 I  H9 G
% T! F, Q" g0 U% O7 e; p& T
2019080817295163.png
+ \: P, Q  o0 g* i! T8 q3 L8 k7 J- o' ]$ W/ W
我们看这个CAN框图,在①处可以看到SRAM存储器在CAN1处,所以使用CAN2(从)时需要先使能CAN1的时钟,使CAN1工作,SRAM存储器才能被CAN2读到2 h# l' l8 {5 g0 j: c6 y" j) {

  R- y+ y, Y6 M2 S
  d; R1 J& a+ p# V+ p( T5 F% P同时我们看到③处:主滤波器(0~n)  从滤波器(n~27)     同时看到②处   这个n的设置是配置CAN FMR寄存器可以修改
' x  ]" c$ D$ u$ s: o& X  o& U9 k5 I0 P; j- Z: Y
STM32中CAN1和CAN2共用滤波器,在CAN1所用滤波器之后才是CAN2的滤波器,需在CAN 筛选器主寄存器 (CAN_FMR)中配置CAN2 起始存储区后CAN2才能使用筛选器。
/ |9 O8 Q6 p% U: F4 U
! h$ J/ {$ c  J# p4 c' i [L9OZ2R6Q_%0@L3X%HN]AZT.png ) D8 A9 K8 ~3 V: k- I7 Y9 L$ r7 C9 e
9 u) A% d7 |  g! V8 r1 C. R' e
一共个5位  设置CAN(2)接口的开始组    范围是0~27    而默认开始组是14" s4 V8 a( Z( F: _% M9 N7 v

2 S' |6 s- ]0 X& n& y 这就是为什么can2筛选器组从14开始  范围为14-27 的原因  ,当然你也可以修改该寄存器的值,使得can2的范围为0~27- A. r$ l+ p! I" e- [/ B+ g

/ W9 c7 e+ m" _1 M9 s2 R% E% D! w  L8 T4 ~* J
3 C- {* h& [% Q8 y
到此,问题结束。
+ F; S; G$ }" ?) B( o* H: G/ b& ?( @) ?! i: ]
* ]# j- k# m5 f6 v2 c
赞 收藏 评论1 发布时间:2022-3-24 23:15

举报

1个回答
miaomiao2020 回答时间:2025-12-3 17:36:09

改了FilterConfig.FilterBank 由0改成14就好了 不然优化等级要调到3

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版