打印
[其他ST产品]

STM32时钟配置

[复制链接]
374|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

本文基于STM32F105系列,STM32F1系列的单片机应该都使用,其他单片机没有实际调试过。

时钟树


使用特权

评论回复
沙发
grfqq325|  楼主 | 2023-9-17 23:02 | 只看该作者
一、设置外部晶振频率(HSE)
根据硬件实际所外接的晶振频率,在软件内外部晶振频率。
文件:stm32f10x.h,找到如下代码:

STM32F10X_CL是互联型STM32单片机(STM32F105\STM32F107)。若是互联型STM32单片机,则修改117行对应的频率,默认是25MHz,此处由于我用的外部晶振是8MHz,因此改为8MHz。其它型号的单片机,则修改下面119行的频率。

使用特权

评论回复
板凳
grfqq325|  楼主 | 2023-9-17 23:03 | 只看该作者
二、设置系统时钟频率(SYSCLK)
文件:system_stm32f10x.c
以_VL结尾的是超值型STM32单片机(STM32F100),此处我们是STM32F105芯片,因此使用else内的代码。系统时钟频率可根据需要配置,这里我们使用默认的72MHz。

使用特权

评论回复
地板
grfqq325|  楼主 | 2023-9-17 23:04 | 只看该作者
三、设置HCLK\PCLK1\PCLK2
HCLK\PCLK1\PCLK2的频率,通过配置AHB预分频器、APB1预分频器和APB2预分频器的分频系数来实现。
文件:system_stm32f10x.c
找到与系统时钟频率对应的主频配置函数SetSysClockTo72(),这里以72MHz为例。此函数内有如下代码:

使用特权

评论回复
5
grfqq325|  楼主 | 2023-9-17 23:05 | 只看该作者
四、设置PREDIV1CLK
此部分设置PREDIV2、PLL2MUL、PREDIV1SCR、PREDIV1四个功能块,1035和1036行先对寄存器相应位进行清零,1037和1038行按需求进行配置。

使用特权

评论回复
6
grfqq325|  楼主 | 2023-9-17 23:05 | 只看该作者
五、设置PLLCLK
此部分设置PLLSCR、PLLMUL功能块,同样是先清零再配置。

使用特权

评论回复
7
grfqq325|  楼主 | 2023-9-17 23:05 | 只看该作者
六、选择系统时钟的时钟源
此部分设置SW,先清零再设置。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

506

帖子

4

粉丝