APM32F051时钟如何配置示例
时间: 2023-07-04 17:13:13 浏览: 241
以下是一个APM32F051时钟配置的示例代码,包括使能外部晶振、配置时钟分频器和时钟源、配置系统时钟和外设时钟。
```c
#include "apm32f051.h"
void clock_config(void)
{
// 使能外部晶振
RCC->CR |= RCC_CR_HSEON_Msk;
while((RCC->CR & RCC_CR_HSERDY_Msk) == 0); // 等待外部晶振稳定
// 配置时钟分频器和时钟源
RCC->CFGR = RCC_CFGR_PLLMULL9_Msk | RCC_CFGR_PLLSRC_Msk | RCC_CFGR_SW_Msk;
RCC->CR |= RCC_CR_PLLON_Msk;
while((RCC->CR & RCC_CR_PLLRDY_Msk) == 0); // 等待PLL稳定
// 配置系统时钟和外设时钟
RCC->CFGR |= RCC_CFGR_PPRE_DIV2_Msk;
RCC->CFGR |= RCC_CFGR_SW_PLL_Msk;
while((RCC->CFGR & RCC_CFGR_SWS_Msk) != RCC_CFGR_SWS_PLL); // 等待系统时钟切换完成
}
```
在这个示例代码中,我们假设使用了外部晶振,并将其分频为9倍作为PLL输入时钟频率。配置了PLL源选择为外部晶振,时钟源选择为PLL,系统时钟分频器为2分频,最终系统时钟为72MHz。同时,外设时钟也分频为72MHz/2=36MHz。
阅读全文