MM32F3273在SystemInit进行外部时钟配置
时间: 2024-03-26 18:42:29 浏览: 158
MM32F3273的SystemInit函数是在启动时自动调用的,用于设置系统时钟和外设时钟。在SystemInit函数中,可以通过配置寄存器来设置外部时钟。
具体来说,可以通过设置RCC_CFGR寄存器来选择外部时钟源,并通过RCC_PLLCFGR寄存器来配置PLL倍频器和分频器,以生成系统时钟。例如,如果想使用外部晶体振荡器作为时钟源,并将系统时钟设置为72MHz,则可以在SystemInit函数中进行如下配置:
```
RCC->CR |= RCC_CR_HSEON; // 使能外部时钟
while(!(RCC->CR & RCC_CR_HSERDY)); // 等待外部时钟稳定
RCC->CFGR |= RCC_CFGR_PLLSRC_HSE_PREDIV; // 选择外部时钟作为PLL时钟源
RCC->CFGR |= RCC_CFGR_PLLMUL9; // 设置PLL倍频系数为9
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2; // 设置APB1时钟分频系数为2
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1; // 设置APB2时钟分频系数为1
RCC->CR |= RCC_CR_PLLON; // 使能PLL
while(!(RCC->CR & RCC_CR_PLLRDY)); // 等待PLL稳定
RCC->CFGR |= RCC_CFGR_SW_PLL; // 选择PLL作为系统时钟源
while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL); // 等待PLL成为系统时钟源
```
这样就可以在SystemInit函数中进行外部时钟的配置。注意,在进行时钟配置时,需要根据具体的硬件和应用需求进行调整。
阅读全文