|
#STM32为什么需要RCC时钟树% d/ M% [& d/ A0 f h 单片机本质上,是一个复杂的时序电路,而时序电路的行为依赖于,时钟信号来控制状态的变化,和数据的流动,如果没有时钟信号,单片机内部的时序逻辑将无法工作,整个系统将失去还有控制。( D6 Z4 J" D, a% e7 x- f8 _ 0 j7 U$ H6 E) s6 y: T4 ]) T8 ]( C 时序电路:这是一种数字逻辑电路类型,输出取决于输出信号,和历史信号(电路之前的状态),通过存储原件保持状态信息,同时通过时钟信号来同步状态的更新。1 v- Z) }% H' z+ c. m: d 7 b" n8 {" v3 y5 h3 } 执行指令:指令的执行分为,取指,解码,执行,返回结果,而时钟信号为这些步奏,提供了时间基准,能过准确的执行指令 2 W' f$ H& q1 F- D+ C$ D1 J 定时器使用:定时器功能中,计数还有输出PWM,这两个功能都需要时钟的控制,定时器还有计数器广泛生成精确的时间延迟。 单片机是时序电路,所以需要时钟树————————铁头山羊(B站) #时钟频率的不同意味着什么& t e+ G+ g8 j' s/ n* y4 e : |4 D3 x' r9 L/ j 可能有的小伙伴单纯的认为,不同的时钟频率就是时钟频率不同,时钟频率意味着不同的执行速度,意味着相同单片机,不同的性能,同时部分外设要求限制相关频率,下面讲。$ ~/ h4 P& `. x 这里使用 STM32F103用来论证,Cortex - M3内核,时钟频率72Mhz,每条指令平均需要一条时钟周期。 理解时钟频率:单片机的时钟频率表示的是每秒钟时钟信号的周期数,通常以(hz)为单位,8Mhz意味着每秒钟有 8000,000个时钟周期 指令执行时间:最终的代码都会转化为指令,去由CPU去执行,这些指令的执行需要时钟周期,不同时钟周期在不同频率下所用时间不同,具体时间受时钟频率,内核架构不同收到影响, 这里举例是,STM32F103用来论证,Cortex - M3内核,时钟频率72Mhz,每条指令平均需要一条时钟周期,用这个来论证执行时间。& P5 M3 r d7 p1 z ; w. ^! R& z# e; k( j2 y 计算不同频率下时钟周期所用时间: 5 f% x. Y0 e; x 不同的频率下时钟周期,执行时间也不一样,公式如下,fclk 单片机时钟频率,Tclk 时钟周期执行时间,这里带入计算, Tclk=1/fclk Tclk=1/72×10 6(6次方)≈13.89 ns; r' D! z3 X" C M; b 每条指令在 Cortex-M3 内核、时钟频率为 72 MHz 的条件下,平均执行时间约为 13.89 纳秒。 " X! G1 B8 u5 y1 L #验证不同频率的执行速度 前言: 这里是参考铁头山羊老师的,在STM32默认时钟频率为8Mhz,的情况下每个for循环需要8个指令周期,循环判断条件1000,000,近似每条for循环执行时间需要1s,0 o9 T2 i$ U# E {- w7 n1 v+ _; _2 w: s 7 w( ~$ p; G5 b2 z9 d
3 ?( P2 O* [( S: j% \6 A" g7 I6 m 1 @' s# a) V6 e4 o& N 实验现象,在默认情况下,板载LED闪烁频率为2s,如果将GPIOC挂载的总线使用STM32CubleMX配置为72Mhz,这个时候就会发现,执行的速度就会更快了。 + ^2 m; o+ ^3 ]6 J 7 y. [6 ~$ [5 |4 t: P ) |9 b9 ?- j; k- D. V p- J |
STM32MP157双A核Linux + 自研RTOS双系统镜像免费下载
经验分享 | 基于STM32G4芯片TIM+SPI+DMA应用示例
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
【STM32H735G-DK测评】ADC3+TIMER1+DMA 采样模拟信号
【STM32H735DK测评】Ethernet+lwip DHCP获取IP地址
STM32H743基于CubeMx5.0配置手册
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
STM32G47x 双 Bank 模式下在线升级
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
微信公众号
手机版