STM32寄存器操作方式学习-时钟配置
扫描二维码
随时随地手机看文章
一、当STM32刚上电启动时,它是从频率为8 MHz 的内部振荡器运行的,假如程序设置外部高速时钟(HSE)为系统时钟源时,在外部高速时钟准备好之前对HSI相关寄存器的操作是无效的,相关位的值将保持在默认值。因此,要想关闭HSI以节能,必须在外部高速时钟准备好之后对HSI相关寄存器操作。
二、当STM32启动时,它是从频率为8 MHz 的内部振荡器运行的,因此内部FLASH 的访问时间不是一个问题。然而,一旦PLL启用并作为时钟源,对于运行在最高性能的Cortex CPU来说,FLASH的速度跟不上CPU。为了允许Cortex CPU 运行在72 MHz具有零等待状态,FLASH 存储器具有由两个64 位缓存器组成的预取缓冲器。这些缓冲器可以从FLASH 存储器中进行64 位宽读取,然后传递独立的16 位或32 位指令给Cortex CPU执行。但是,必须在主时钟源切换到PLL前启用预取缓冲器。启用预取缓冲器,还必须调整FLASH 预取缓冲器所需的等待周期。
零等待状态,当0MHz< SYSCLK≤24MHz
一个等待状态,当24MHz< SYSCLK≤48MHz
两个等待状态,当48MHz< SYSCLK≤72MHz
三、主流时钟配置步骤:1.打开外部高速时钟晶振(HSE);2.等待外部高速时钟晶振稳定振动;3.设置AHB预分频器(HPRE[3:0]);4.设置低速APB1预分频器(PPRE1[2:0]);5.设置高速速APB2预分频器(PPRE2[2:0]);6.设置PLLMUL时钟源以及PLLMUL的倍频数;7.使能PLL;8.等待PLL时钟就绪;9.打开FLASH预取缓冲区,设置FLASH等待周期数;10.设置PLL输出为系统时钟(SW[1:0])。11.打开所要用到的外设的时钟。
在配置 STM32 外设的时候,任何时候都要先使能该外设的时钟!