
STM32中的几个时钟SysTick、FCLK、SYSCLK、HCLK的详解.docx
4页STM32 中的几个时钟 SysTick、FCLK、SYSCLK、HCLK的详解在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL①、HSI是高 速内部时钟,RC振荡器,频率为8MHz② 、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz③ 、LSI是低速内部时钟,RC振荡器,频率为40kHz④ 、LSE是低速外部时钟,接频率为32.768kHz的石英晶体⑤ 、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2倍频可选择为2~16倍,但是其输出频率最 大不得超过72MHz其中40kHz的LSI(低速内部时钟)供独立看门狗IWDG使用,另外它还可以被 选择为实时时钟RTC的时钟源另夕卜,实时时钟RTC的时钟源还可以选择LSE(低 速外部时钟),或者是HSE(高速外部时钟)的128分频RTC的时钟源通过 RTCSEL[1:0]来选择STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为 48MHz的时钟源该时钟源只能从PLL输出端获取,可以选择为1.5分频或者1 分频,也就是,当需要使用USB模块时,PLL必须使能,并且时钟频率配置为48MHz 或 72MHz。
)另外,STM32还可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为 PLL输出的2分频、HSI、HSE、或者系统时钟系统时钟SYSCLK最大频率为72MHz,它是供STM32中绝大部分部件工作的时钟源 系统时钟可由PLL、HSI或者HSE提供输出,并且它通过AHB分频器分频后送给 各模块使用,AHB分频器可选择1、2、4、8、16、64、128、256、512分频其 中AHB分频器输出的时钟送给5大模块使用:①、送给AHB总线、内核、内存和DMA 使用的HCLK时钟② 、分频后送给STM32芯片的系统定时器时钟(Systick=Sysclk/8=9Mhz)③ 、直接送给Cortex的自由运行时钟(free running clock)FCLKARMJISHU注:FCLK为 处理器的自由振荡的处理器时钟,用来采样中断和为调试模块计时在处理器休眠时,通过 FCLK保证可以采样到中断和跟踪休眠事件Cortex-M3内核的“自由运行时钟(free running clock)乍CLK"自由”表现在它不来自系统时钟HCLK,因此在系统时钟停止时FCLK 也继续运行FCLK和HCLK互相同步。
FCLK是一个自由振荡的HCLKFCLK和HCLK 应该互相平衡,保证进入Cortex-M3时的延迟相同④、送给APB1分频器APB1分 频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz), 另一路送给定时器(Timer)2、3、4倍频器使用该倍频器可选择1或者2倍频,时钟输出 供定时器2、3、4使用⑤、送给APB2分频器APB2分频器可选择1、2、4、8、16分频,其输出一路供APB2 外设使用(PCLK2,最大频率72MHz),另一路送给定时器(Timer)1倍频器使用该倍频器 可选择1或者2倍频,时钟输出供定时器1使用另外,APB2分频器还有一路输出供ADC 分频器使用,分频后送给ADC模块使用ADC分频器可选择为2、4、6、8分频以上提到3种时钟Fclk、Hclk和Pclk,简单解释如下:Fclk为供给CPU内 核的时钟信号,我们所说的cpu主频为XXXXMHz,就是指的这个时钟信号,相应 的,1/Fclk即为cpu时钟周期;Hclk为优秀的高性能总线(AHB bus peripherals) 供给时钟信号(AHB 为 advanced high-performance bus); HCLK : AHB 总线 时钟,由系统时钟SYSCLK分频得到,一般不分频,等于系统时钟,HCLK是高速外设时 钟,是给外部设备的,比如内存,flasho Pclk为优秀的高性能外设总线(APB bus peripherals)供给时钟信号(其中 APB 为 advanced peripherals bus)。
在以上的时钟输出中,有很多是带使能控制的,例如AHB总线时钟、内核时 钟、各种APB1外设、APB2外设等等当需要使用某模块时,记得一定要先使能 对应的时钟需要注意的是定时器的倍频器,当APB的分频为1时,它的倍频值为1,否则 它的倍频值就为2连接在APB1(低速外设)上的设备有:电源接口、备份接口、CAN、USB、I2C1、 I2C2、UART2、UART3、SPI2、窗口看门狗、Timer2、Timer3、Timer4注意:USB模块虽然需要一个单独的48MHz时钟信号,但它应该不是供USB 模块工作的时钟,而只是提供给串行接口引擎(SIE)使用的时钟USB模块工作的时 钟应该是由APB1提供的连接在APB2(高速外设)上的设备有:UART1、SPI1、Time门、 ADC1、ADC2、所有普通 10 口(PA~PE)、第二功能 10 口[caption id="attachme nt_2541" alig n="alig nnone" width="516" caption="STM32 的 HCLK 与 FCLK 关系图"][/capti on]下图是STM32用户手册中的时钟系统结构图(位于《STM32F103CDE_DS_CH_V5.pdf》的第 14 页,或者《STM32F10XXX 参考手 册_CN.pdf》的第47页),通过该图可以从[caption id="attachment_2542" align="alignnone" width="847"caption="STM32的时钟系统结构图"]图2 时钟树USBZ1.1.5USBCLK>toUSB intertace8 MHzHSI RCP4^RC PLLMUL....x16一*SWPLLCLKUSE/Perift^ral dock enable,2S3CLK »»I2S3P^fiptw al clock"HFSMCqX.sFSMCSDIQCLK>toSPIO72 L1Y maxHCLK to AHB bu$. 8© memory and DMA-> to Coitex System timerAPB1AHBSY戸忧卅 Prescaler pH P^^scalec 雷S・2・Q2 m•I K/1.2.512/I. 2. 4.8. 1630 MHz max> FCLK Cortex free renning dockEnabte(20 bte)PCLK1 WAPBi f lOock apibIf (APB;加心* T) A^TIM2^3A5.6 and 7沁 Tiwm ■rt(lpbcralCbck Enatte,;6 t<8)4-16 MHz HSE OSCPLLXTPREAPB2PrMcaler/1. 2. 4.8.1672 MHzRarip EnaUailSMS)PCLK2 .|>eripberateto APB2TIM1 &8umers !,- If (APB2 proicator»1)x <—J 曲£ n- 3 Qkr.»Kto TIMl and TIM0LSE OSC32.768 kHztoRTCLSI RC 40 kHz“ RTCCLK ARTCSEL|1X>]LSIIWDGCLKADC PreacaferEna6to(2 M)10ADC1/2.4. 6. 8ADCCLK ・■ 20C8!2丿 TIMxCLKPinphxaiaockHCLK.ToS(X>AHBInwfacA Pen phwl clockLa^ftnd:MKX)HSE SYSCLKHSE - H»gh Speel bternal dock 曲 nal HSI. High S删 ckxk signalLSI ■ Law Spwd (ntvrrui dock skfuI LSE*LwSp^ EMsnalcg也叭IaH4752b1. 1HSI作为PLLIH钟的辙入时,垠奇的系统时钟频率只能达到64MHz2•为使用USB功德时,必须同时便用HSE和PLL. CPU的频率必狈足48IV1HZ或72MHz。
3.十需要ADC采样时间为4ps时,APB2必须设址在14MHz. 28MHz或56MHz・。












