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

STM32F0应用中I2C与USART时钟的相关话题

[复制链接]
STMCU小助手 发布时间:2021-2-26 15:50
STM32F0应用中I2C与USART时钟的相关话题

- o( e& f# V# d# e* D0 c2 Z, b% P. C3 o
5.1.jpg
+ ~4 }6 J! i7 S1 d- K
+ B1 f" W. h0 J. r, b+ R; b
曾经有人问:我使用STM32F0芯片的I2C1,根据STM32F0参考手册描述,I2C1的时钟可以自行选择HSI或者SYSCLK。我选择HSI作为I2C1的时钟,在用STM32CUBEMX配置生成初始化代码时,怎么还要配置I2C1的APB时钟呢?【如下面截图所示】
: _' e- x" v# M& _% C
5.2.png
5.3.png

% s1 S! T2 X4 ~! K3 V6 b. b
其实,关于I2C1我们这里可以把它看成两部分。

0 {( X+ P( b1 w. ^& w8 E. K5 i
一部分是I2C1的工作模块,另外一部分是其控制模块,或者说控制接口模块。

  |+ [' Y, h3 s" E+ W2 d- f
前者的工作时钟可以在HIS和SYSCLK二者间进行选择。

+ \" a$ V. t6 o) t# \2 M
控制模块的时钟仍然由外设时钟PCLK提供,保障外设相关寄存器的正常工作。CPU借助于APB总线访问相关寄存器达到对I2C1工作模块的控制,包括对I2C1模块的开启和关闭。
, N# O  W6 n+ G/ k& p
所以上面代码做两件事:I2C1工作时钟源选择;I2C1模块工作时钟的开启使能。
( g) O5 S7 A, O% e6 F. K7 U
至于问题中提到的“怎么还要配置I2C1的APB”应是一种误解,这里只是通过APB总线访问I2C1控制模块,实质就是通过访问寄存器来控制I2C1工作时钟的开启。
% q+ M3 l' [6 @' ?4 P1 }
5.4.jpg
+ O$ a* D2 _5 S8 ^- |2 C4 D5 m
前几天又有人问:stm32f070f6p6在cubemx中有配置2个uart,但为什么在clock configuration只有uart1可以配置呢?
: a8 N. \' Z) E) B8 ~
7 A( M( G/ \3 G3 x4 A
5.5.png
% J! U$ t2 f  O! D, U8 Q. Q4 R, w
5.6.png

8 ~; V6 A1 d) p8 z  `9 o
这个问题跟第一个问题时类似的,只是换了个外设而已。在STM32F070F6P6芯片里,USART1可以有多个时钟源,所以单列出来让用户选择。而USART2固定使用PCLK时钟,只有开启和关闭的问题,不存在其它时钟源选择。所以STM32CUBEMX就没把它有单列出来。
, N( b! d$ G" i1 A8 }
同样,对于USART1,除了对其工作时钟源做选择外,跟上面I2C1一样,其外设模块时钟也有关闭或使能的问题,CPU通过APB外设总线访问USART1的相关寄存器完成。
8 a! d  x. O* ^! Y2 A9 l' r
小结下,STM32芯片中有多个工作时钟源的外设很常见。不过,我们不要把外设工作时钟和CPU访问它的外设总线时钟混为一谈。很多情况下,外设工作时钟来源于其总线时钟,将总线时钟进行分频或倍频后再作为外设工作时钟。当然也有诸如上面提到的情况,外设工作时钟源跟其外设总线时钟没有关系,只是外设控制接口挂在外设总线上。还是以上面谈到的STM32F0芯片为例,ADC外设的工作时钟源也有两个,即HSI14和PCLK;RTC也有多个工作时钟源,如LSE,HSE,LSI。

, a1 T$ L9 r7 p0 z3 J
6 c# ^) \* r; D3 b$ {; O0 H
不管这些外设有多少个工作时钟源,但CPU访问它们还是通过外设总线完成,比如APB总线。也就是说各个外设都是挂在相应的外设总线上的。本质上讲,CPU通过外设总线访问各外设的寄存器来发布指令或获取数据及状态,从而实现对各个外设工作的管控。
# `$ w1 g0 k' `4 ~: z$ B  [+ x! H
文章出处: 茶话MCU

' f' M9 P1 G4 a/ ]1 {; ?3 ]$ p5 h! m" M) [, X* F

" q9 `5 Q' p6 D) _
赞 收藏 评论0 发布时间:2021-2-26 15:50

举报

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