STMCU小助手
发布时间:2022-10-31 11:21
|
概述6 Z+ e0 N4 z- d8 ] STM32时钟系统主要的目的就是给相对独立的外设模块提供时钟,也是为了降低整个芯片的耗能。5 _$ c3 J! _# A6 W% d( a. o 系统时钟,是处理器运行时间基准(每一条机器指令一个时钟周期) 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。) ^& H( D% K3 W1 r. u 一个单片机内提供多个不同的系统时钟,可以适应更多的应用场合。 不同的功能模块会有不同的时钟上限,因此提供不同的时钟,也能在一个单片机内放置更多的功能模块。+ i3 _ O% j* p, L- h6 i! L 对不同模块的时钟增加开启和关闭功能,可以降低单片机的功耗5 P3 ]0 b' @9 J' G3 h STM32为了低功耗,他将所有的外设时钟都设置为disable(不使能),用到什么外设,只要打开对应外设的时钟就可以, 其他的没用到的可以还是disable(不使能),这样耗能就会减少。 这就是为什么不管你配置什么功能都需要先打开对应的时钟的原因2 [0 T* G i( r& a9 w# d' s( |
各个时钟源 (左边的部分) STM32G0有4个独立时钟源:HSI、HSE、LSI、LSE。 ①、HSI是高速内部时钟,RC振荡器,频率为16MHz,精度不高。4 e! ?# n3 l4 ?8 i* a2 p/ Q ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~48MHz。0 M6 _! W( H- \7 C ③、LSI是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。2 h8 A/ l4 m+ X- I3 I2 G! M 7 b, Q- H d& B7 e( y/ a; I 其中LSI是作为IWDGCLK(独立看门狗)时钟源和RTC时钟源 而独立使用 3 L2 W4 @3 { G' ]# ?- D6 ^ ( O2 ]! ~" ~9 ]& X 而HSI高速内部时钟、 HSE高速外部时钟、 LSI低速内部时钟,这三个经过分频或者倍频 作为系统时钟来使用 6 `) Y7 ^, |* e. ?- n8 R PLL为锁相环倍频输出,基于HSI16或基于HSE的时钟的频率相乘,以产生三个独立的时钟输出。允许的输入频率范围是2.66至16 MHz。分频因子可从1到8进行编程 时钟分析 LSI(低速内部时钟)7 Y; ]4 t, u- R* S* h 作为IWDG(独立看门狗)和RTC的时钟源,单独使用。3 x: m9 _; M% k, _0 ^ ; h$ v- ]" A# K9 P0 t9 @ LSE(低速外部时钟)6 L1 _ p( | k8 z 可以为RTC、CEC、SYSCLK提供时钟源。+ S: p9 B9 v: m, B HSE(高速外部时钟) * X/ ?/ M8 ?' Z# M$ @8 l* _ 可以为RTC、SYSCLK、PLL提供时钟源。 * q$ w5 v+ u+ E8 e* R6 h* Y HSI(高速内部时钟) 可以为PLL、HSISYS提供时钟源,HSISYS再为SYSCLK提供时钟源2 f3 I5 ]5 W# ]. U( a PLL(锁相环倍频输出)8 G" m6 k8 R8 X; `2 x5 L- y- y1 @3 | ' ^5 [! H! T$ J( {% \ 由HSE、HSI输入,经过分频倍频后提供SYSCLK,还用两组时钟分别提供给TIM1/TIM15/RNG和ADC/I2S1。- x3 w, k `9 n5 S 3 ~* p) F: r5 ~9 F {+ F' g) _" ` 其他时钟源分析7 h7 i% Y4 }* ^5 C HSISYS 从HSI16通过除以1到128的可编程因子得到的时钟 PLLPCLK,PLLQCLK,PLLRCLK 从PLL模块输出的时钟 3 x$ Z/ S7 C& Q6 J: ~ SYSCLK8 V M4 L7 S8 @# C' J 通过选择LSE,LSI,HSE,PLLRCLK和HSISYS时钟之一获得的时钟,是整个系统时钟基准。G0系列频率最高到64MHz。# g# p; ^" A" b! z% R0 n9 A HCLK* w& H1 f+ `1 K- q- U/ @0 K 2 u0 y) b& W; g1 R7 w O9 q 由SYSCLK通过除以从1到512可编程的因子得出的时钟2 s( k% P w3 V6 r G( h( o2 ~" F% e! c. N HCLK8) R5 V1 S, ~* i 4 Z+ p, m" h8 |" y2 T% B! w5 D 由HCLK八分频得出的时钟* m5 e1 Y# P! T; w PCLK# h2 T2 T# F$ O/ D ( l8 r4 ^, ]2 m8 S 从HCLK的时钟通过除以从1到16可编程的因子得出的时钟1 |3 W/ ?. @5 ^/ d; f TIMPCLK7 y; y" K# [5 B5 B 6 |" T+ G& f7 d( @ 从PCLK派生的时钟,如果APB预分频器分频因子设置为1,则以PCLK频率运行,否则,以PCLK频率的两倍运行# R3 }- i/ k( l7 N . q$ e) [5 F" W& A' c p LPTIMx_IN$ d7 o1 Y; ^1 h$ h/ H$ C LPTIMx_INx引脚提供的时钟,可为LPTIM外设选择- c$ Z+ e: w: d& I MCO(微控制器时钟输出) 微控制器时钟输出(MCO)功能允许将时钟输出到外部MCO引脚。 可以选择以下之一作为MCO时钟: 5 h9 ?1 ?, M/ Y • LSI • LSE |, j `7 p+ g • SYSCLK! i% c, d4 z# B4 v3 E: C- M" v$ J! S/ R • HSI16 • HSE • PLLRCLK + `& [% Z' k" d, D( ^ CSS(时钟安全系统) 时钟安全系统可以通过软件激活。一旦检测到HSE时钟故障,则系统时钟将自动切换到HSISYS,并且禁用HSE振荡器。如果HSE时钟也是PLL的时钟来源,并且发生故障时将PLLRCLK用作系统时钟,则PLL也被禁用。 & i; ~3 S( c5 _! q g 通过CubeMX配置时钟树3 M l, @! t/ P8 G- t 新建工程,并且开启SWD调试 ;(如何开启SWD调试,请点击链接); \! k( r& j/ v9 P; k 通过在引脚视图界面,配置PC6为GPIO_Output;(如何使用GPIO引脚,请点击链接) 在Pinout&Configuration中选中"RCC",在配置栏High Speed Clock(HSE)下拉菜单中选中"Crystal/Ceramic Resonator"% S/ ~" Z3 ^0 G2 A, J" t5 [$ [
在Clock Configuration中 ,按下图配置,在HCLK框中输入最大64MHz,回车。cubemx软件会自动计算系数,而不用手动填写。保持激活CSS。3 `% w/ \" u1 x. _/ |' T* T8 [ 2 [1 a4 p, T3 ^- y* X$ l$ H
然后在Project Manager中,设置好参数信息。
/ f: _! J' _) U( [) m( m( b
最后点击GENERATE CODE,生成工程文件。 打开工程项目,进入到MDK软件
打开魔术棒工具-Debug-Settings-Flash Download,勾上"Reset and Run",最后就可以编写代码,自由发挥吧。& g4 ^2 d$ ^( `; n$ R" D' Q! p; n
————————————————8 s0 r& s* k2 _5 h6 V6 f 版权声明:SCCELE; `: a3 E& f. y: T, J: e 3 A% ^4 v& Z- d2 u. E$ u |
实战经验 | 基于STM32G0B1的全桥移相+同步整流PWM解决方案
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:逢7发帖赢大礼】8、基于STM32G070板子的Ymodem串口协议IAP Bootloader开发
【福利三:逢7发帖赢大礼】7、基于STM32G070板子TF卡的FATFS移植
【福利三:逢7发帖赢大礼】6、基于STM32G070板子spiflash的FATFS移植
【福利三:逢7发帖赢大礼】5、基于STM32G070板子IRDA红外遥控接收解码
【福利三:逢7发帖赢大礼】4、基于STM32G070板子SPI flash 移植SFUD库
【福利三:逢7发帖赢大礼】基于STM32G070板子的uart shell移植设计
【福利三:逢7发帖赢大礼】3、基于STM32G070板子的YModem串口协议通信
【福利三:逢7发帖赢大礼】2、基于STM32G070板子的OLED移植U8G2库
微信公众号
手机版