STM32的还有一个重要的功能,就是时钟安全系统。如果使能了该功能,HSE 时钟发生故障,将生成一个中断来向软件通知此故障,同时,系统时钟将切换到 HSI 。 通过STM32时钟树,可以一目了然STM32时钟的功能,比如STM32F4系列时钟树: 更多关于STM32时钟的信息,可以参看芯片对应的参考手册。 STM32 时钟常规配置 STM32 系统...
可以通过时钟控制寄存器里的HSITRIM[4:0]位来调整HSI频率。时钟控制寄存器中的HSIRDY位用来指示HSI RC振荡器是否稳定。在时钟启动过程中,直到这一位被硬件置'1',HSI RC输出时钟才被释放。HSI RC可由时钟控制寄存器中的HSION位来启动和关闭。如果HSE晶体振荡器失效,HSI时钟会被作为备用时钟源。 PLL 内部PLL可以用...
系统时钟来源可以是:HSI、PLLCLK、HSE,具体的由时钟配置寄存器 RCC_CFGR 的SW 位配置。我们这里设置系统时钟:SYSCLK = PLLCLK = 168M。如果系统时钟是由 HSE 经过 PLL 倍频之后的 PLLCLK 得到,当 HSE 出现故障的时候,系统时钟会切换为 HSI=16M,直到 HSE 恢复正常为止。 ④AHB 总线时钟 HCLK 系统时钟 SYSCLK ...
系统时钟SYSCLK通过一个选择器来选择,输入源是HSI(内部高速时钟),HSE(外部高速时钟),PLL锁相环。 由于内部高速时钟和外部高速时钟都无法提供168Mhz的频率,所以系统时钟的直接来源应该是PLLCLK,所以在配置的时候需要将系统时钟选择到锁相环上, PLL锁相环如何产生168Mhz的频率? 内部时钟HSI和外部时钟 HSE会来到选择器...
HSE 或者 HSI 经过 PLL 时钟输入分频因子 M(2~63)分频后,成为 VCO 的时钟输入,VCO 的时钟必须在 1~2M 之间, 我们选择 HSE=25M 作为 PLL 的时钟输入, M 设置为 25,那么 VCO 输入时钟就等于 1M。 VCO 输入时钟经过 VCO 倍频因子 N 倍频之后,成为 VCO 时钟输出, VCO 时钟必须在 192~432M 之间。我们配...
当HSE故障的时候,如果PLL的时钟来源是HSE,那么当HSE故障的时候,不仅HSE不能使用,连PLL也会被关闭,这个时候系统会自动切换HSI作为系统时钟,此时SYSCLK=HSI=8M,如果没有开启CSS和CSS中断的话,那么整个系统就只能在低速率运行,这是系统跟瘫痪没什么两样。如果开启了CSS功能的话,那么可以当HSE故障时,在CSS中断里面采取...
输入时钟源:可以选择HSI或HSE作为PLL的输入时钟源。 倍频因子:可通过设置寄存器来选择倍频因子,将输入时钟源的频率乘以固定的倍数,获得更高频率的系统时钟。 频率范围:对于STM32F103系列,最大系统时钟频率为72MHz。 通过配置相关的寄存器,可以选择时钟源并配置PLL的输入时钟源和倍频因子。例如,可以将HSI或HSE作为主时钟...
1. 时钟源STM32的时钟源分为高速、低速两类时钟,同时也分内部和外部。HSE:High Speed External,高速外部HSI:High Speed Internal,高速内部LSE:Low Speed External ,低速外部LSI:Low Speed Internal,低速内部 HSE时钟有两类时钟源: 外部晶振/陶瓷谐振器
HSI 设置系统时钟函数跟 HSE 设置系统时钟函数在原理上是一样的,有一个区别的地方就是, HSI 必须 2 分频之后才能作为 PLL 的时钟来源,所以使用 HSI 时,最大的系统时钟 SYSCLK 只 能是 HSI/2*16=4*16=64MHZ。 // 软件延时函数,使用不同的系统时钟,延时不一样void Delay(__IO uint32_t nCount){for...
出厂校验值被装载到时钟控制寄存器RCC_CR 的HSICAL [7:0] 位. 在不同的电压或者温度下, 可以通过RCC_CR 中的HSITRIM[4:0]位来调整HSI 的频率. 并可以通过时钟控制寄存器RCC_CR 的HISON 位打开或者禁用. (3) LSE:低速外部时钟信号 振荡器是一个32.768KHz 的低速外部晶体/陶瓷振荡器, 它可以向RTC 提供高...