APM32的外部时钟配置代码
时间: 2024-04-13 11:29:10 浏览: 158
以下是一个示例代码,用于配置APM32的外部时钟:
```c
#include <stm32f10x.h>
void RCC_Configuration(void)
{
// 打开外部晶体振荡器
RCC->CR |= RCC_CR_HSEON;
while (!(RCC->CR & RCC_CR_HSERDY));
// 配置PLL时钟源为外部晶体
RCC->CFGR |= RCC_CFGR_PLLSRC;
// 配置PLL倍频因子为9,得到72MHz的系统时钟
RCC->CFGR |= RCC_CFGR_PLLMULL9;
// 配置APB1和APB2分频因子为2,得到36MHz的外设时钟
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;
RCC->CFGR |= RCC_CFGR_PPRE2_DIV2;
// 打开PLL
RCC->CR |= RCC_CR_PLLON;
while (!(RCC->CR & RCC_CR_PLLRDY));
// 设置PLL作为系统时钟
RCC->CFGR &= ~RCC_CFGR_SW;
RCC->CFGR |= RCC_CFGR_SW_PLL;
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL);
}
```
这段代码使用了STM32固件库(stm32f10x.h)来访问寄存器。首先打开外部晶体振荡器,并等待其稳定(RCC_CR_HSERDY)。然后将PLL时钟源配置为外部晶体(RCC_CFGR_PLLSRC),并设置PLL倍频因子为9,以得到72MHz的系统时钟。接下来,将APB1和APB2分频因子配置为2,以得到36MHz的外设时钟。最后,打开PLL并等待其稳定(RCC_CR_PLLRDY),将PLL设置为系统时钟,并等待时钟切换完成(RCC_CFGR_SWS_PLL)。
请注意,这只是一个示例代码,具体的配置可能会根据具体的APM32型号和厂商而有所不同。在实际使用时,建议参考相关的技术手册和数据表来进行正确的时钟配置。
阅读全文