【STM32】CubeMX+HAL库之时钟
前言
时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。 时钟系统就是CPU的脉搏,决定CPU速率,像人的心跳一样 只有有了心跳,人才能做其他的事情,而单片机有了时钟,才能够运行执行指令,才能够做其他的处理 (TIM,串口,ADC,PWM等),时钟的重要性不言而喻。
所用工具:
- 开发板:野火挑战者STM32H743IIT6
- STM32CubeMX
- IDE: Keil-MDK
为什么有那么多总线,还要有时钟树?
STM32本身十分复杂,外设非常多,使用任何外设都需要时钟才能启动,但并不是所有的外设都需要系统时钟那么高的频率, 为了兼容不同速度的设备,有些高速,有些低速,如果都用高速时钟,势必造成浪费 并且,同一个电路,时钟越快功耗越快,同时抗电磁干扰能力也就越弱,所以较为复杂的MCU都是采用多时钟源的方法来解决这些问题。所以便有了STM32的时钟系统和时钟树。
STM32CubeMX时钟配置
1.设置RCC
首先介绍使用高速外部时钟(常用)
步骤如下图
注意 如需使用较高主频请将功率档位开到 0;如下图 3处所示。
2. 打开时钟配置选项
·选择HSE(高速外部振荡器)
·选择PLLCLK
·选择自己需要的主频
如下图所示
低速外部时钟(LSE)配置同理
在使用内部震荡器时直接从第二步时钟配置开始就可以。
如下图所示
时钟的配置到这里就结束了,下面开始生成文件。
首先设置文件名、文件位置、IDE等信息
高级选项配置
最后生成代码