stm32f407配置系统时钟168MHZ
时间: 2023-07-25 21:05:06 浏览: 393
配置STM32F407的系统时钟为168MHZ,需要按照以下步骤进行:
1. 配置时钟源为外部晶振
在RCC_CR寄存器中设置HSEON位,使能外部晶振。
2. 等待时钟稳定
在RCC_CR寄存器中检测HSERDY位,等待外部晶振稳定。
3. 配置PLL
设置PLL倍频系数和分频系数,使得PLL输出的时钟频率为168MHz。
4. 选择PLL作为系统时钟源
在RCC_CFGR寄存器中选择PLL作为系统时钟源。
5. 等待PLL稳定
在RCC_CR寄存器中检测PLLRDY位,等待PLL稳定。
6. 配置AHB、APB1和APB2时钟分频系数
在RCC_CFGR寄存器中配置AHB、APB1和APB2时钟分频系数,使得AHB时钟频率为168MHz,APB1时钟频率为84MHz,APB2时钟频率为84MHz。
以下是代码示例:
```c
// 使能外部晶振
RCC->CR |= RCC_CR_HSEON;
// 等待外部晶振稳定
while(!(RCC->CR & RCC_CR_HSERDY));
// 配置PLL
RCC->PLLCFGR = (8 << RCC_PLLCFGR_PLLM_Pos) | (336 << RCC_PLLCFGR_PLLN_Pos) | (0 << RCC_PLLCFGR_PLLP_Pos) | (2 << RCC_PLLCFGR_PLLQ_Pos) | RCC_PLLCFGR_PLLSRC_HSE;
// 选择PLL作为系统时钟源
RCC->CFGR |= RCC_CFGR_SW_PLL;
// 等待PLL稳定
while(!(RCC->CR & RCC_CR_PLLRDY));
// 配置时钟分频系数
RCC->CFGR |= RCC_CFGR_HPRE_DIV1 | RCC_CFGR_PPRE1_DIV4 | RCC_CFGR_PPRE2_DIV2;
```
阅读全文