STM32F4再探-1.时钟系统

本文详细介绍了STM32F4的时钟系统,包括五个重要的时钟源:HSI、HSE、LSI、LSE和PLL。讨论了如何通过配置这些时钟源来生成系统时钟(SYSCLK),并给出了具体的计算公式和系统时钟配置参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在算已经入门了STM32之后(其实也不算入门了,只是会使用STM32的各种外设,会GPIO,会复用,能使用SPI,串口,会输出PWM,会定时器,刚刚实现一个无线通信控制步进电机按照一定流程运动,下一步打算移植UCOSIII到板子中),在这之前觉着好像仅仅只是会使用STM32,能看得懂例程,但是对于一些原理性的东西好像很模糊,觉着要重新学习一遍STM32F4,然后搞明白以前很模糊的一些概念和原理。

首先要搞清楚的是时钟系统。上图
STM32F4时钟树——STM32F4中文参考手册

STM32的外设很多,并不是所有的外设都需要像系统时钟那么高的频率,RTC+看门狗只需要几十K即可。频率越高,功耗越大,抗电磁干扰能力越弱,所以在STM32中不像51只有一个时钟源。

STM32F4中有5个最重要的时钟源:
HSI-高速内部时钟(RC振荡器产生,16M,可作为系统时钟)
HSE-高速外部时钟(外部晶振,一般用8M晶振)
LSI-低速内部时钟(RC振荡器产生,32kHz左右,供看门狗和自动唤醒单元使用)
LSE-低速外部时钟(32.768kHz外部晶振,主要为RTC时钟源)
PLL-锁相环倍频输出(分为主PLL和专用PLL)

PLL的来源其实是HSI或者HSE。
主PLL(PLL):具有两个不同的输出时钟(PLLP,PLLQ)。
PLLP用于生成高速系统时钟(SYSCLK,最高168MHz)
PLLQ用于成成USB OTG FS的时钟(48MHz),
专用PLL(PLLI2S):在I2S接口实现高品质音频。

PLLP->SYSCLK 计算系统频率的方法:
(eg. 外部晶振8M 分频系数M=8 倍频系数N=336 分频系数P=2)
则: PLLP=8MHz * N / (M * P) = 168MHz

系统时钟为PTP(以太网时钟),AHB,APB1,APB2作为时钟源。
注意:PTP使用系统时钟频率,AHB,APB1,APB2都是经过分频之后的时钟。
AHB最高168MHz APB2最高84MHz APB1最高42MHz

最后总结一下SystemInit()函数中设置的系统时钟的大小:
SYSCLK(系统时钟):168MHz
AHB(HCLK=SYSCLK):168MHz
APB1(PCLK1=SYSCLK/4):42MHz
APB2(PCLK2=SYSCLK/2):84MHz
PLL主时钟:168MHz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值