STM32时钟详细配置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STM32时钟配置
STM32时钟配置步骤// 开启HSI时钟寄存器操作
1).开启高速时钟HSE // 设置时钟控制寄存器RCC_CR 位16 置1使能
RCC->CR|= 0x00010000;
位16 :HSEON:外部高速时钟使能
当进入待机和停止模式时,该位由硬件清零,关闭4-16MHz外部振荡器。

当外部4-16MHz 振荡器被用作或被选择将要作为系统时钟时,该位不能被清零。

2).等待高速时钟就绪// 读取时钟控制寄存器RCC_CR位17为1就位
while(!(RCC-> CR>>17));
位17:HSERDY:外部高速时钟就绪标志
由硬件置’1’来指示外部4-16MHz振荡器已经稳定。

在HSEON位清零后,该位需要6个外部4-25MHz振荡器周期清零。

3).设置APB1,APB2,AHB分频系数// 设置时钟配置寄存器RCC_CFGR
RCC_CFGR=0x00000400;
(AHB :位4-7, (低速)APB1 :位8-10, (高速)APB2 :位11-13)
位7:4:HPRE[3:0]:AHB预分频(AHB Prescaler)0xxx:SYSCLK不分频
位10:8:PPRE1[2:0]:低速APB预分频(APB1) 100:HCLK 2分频
位13:11:PPRE2[2:0]:高速APB预分频(APB2) 0xx:HCLK不分频
4).设置PLL倍频// 配置时钟配置寄存器RCC_CFGR 位18-21
RCC_CFGR|=7<<18;
位21:18:PLLMUL:PLL倍频系数0111:PLL 9倍频输出
5).PLL输入时钟源选择// 配置时钟配置寄存器RCC_CFGR 位16
RCC_CFGR|=1<<16;
位16:PLLSRC:PLL输入时钟源(PLL entry clock source) 1:HSE时钟作为PLL输入时钟。

由软件置’1’或清’0’来选择PLL输入时钟源。

只能在关闭PLL时才能写入此位6).设置FLASH延时周期//48<system<72M:2个延时周期
FLASH->ACR|=0x32;
7).PLL使能// 设置时钟控制寄存器RCC_CR 位24
RCC_CR|=0X01000000;
位24:PLLON:PLL使能1:PLL使能当进入待机和停止模式时,该位由硬件清零。

当PLL时钟被用作或被选择将要作为系统时钟时,该位不能被清零。

8).等待PLL就绪// 设置时钟控制寄存器RCC_CR 位25置1锁定
while(!(RCC_CR>>24));
位25:PLLRDY:PLL时钟就绪标志1:PLL锁定PLL锁定后由硬件置’1’。

9).设置PLL作为system时钟// 配置时钟配置寄存器RCC_CFGR 位0-1 :10
RCC_CFGR|=0X00000002;
位1:0 SW[1:0]:系统时钟切换10:PLL输出作为系统时钟
在从停止或待机模式中返回时或直接或间接作为系统时钟的HSE出现故障时,由硬件强制选择HSI作为系统时钟(如果时钟安全系统已经启动)
10).等待system时钟稳定// 查看时钟配置寄存器RCC_CFGR位2-3 :10
while((RCC->CFGR & (uint32_t)0x0c) != (uint32_t)0x08)
位3:2:SWS[1:0]:系统时钟切换状态10:PLL输出作为系统时钟;
由硬件置’1’或清’0’来指示哪一个时钟源被作为系统时钟。

相关文档
最新文档