stm32f103c8t6初始化系统时钟为72MHz
时间: 2023-08-01 12:12:56 浏览: 118
STM32系统时钟的配置
好的,关于你的问题,我可以给出以下的代码示例,来初始化 STM32F103C8T6 的系统时钟为 72MHz:
```
#include "stm32f10x.h"
int main(void)
{
RCC->CR |= RCC_CR_HSEON; // Enable HSE (external high speed oscillator)
while(!(RCC->CR & RCC_CR_HSERDY)); // Wait until HSE is ready
FLASH->ACR |= FLASH_ACR_LATENCY_2; // Two wait states for 72MHz
RCC->CFGR |= RCC_CFGR_PLLSRC_HSE; // Use HSE as PLL input
RCC->CFGR |= RCC_CFGR_PLLMULL9; // PLL multiplier of 9
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2; // APB1 prescaler of 2
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1; // APB2 prescaler of 1
RCC->CR |= RCC_CR_PLLON; // Enable PLL
while(!(RCC->CR & RCC_CR_PLLRDY)); // Wait until PLL is ready
RCC->CFGR |= RCC_CFGR_SW_PLL; // Use PLL as system clock source
while(!(RCC->CFGR & RCC_CFGR_SWS_PLL)); // Wait until PLL is used as system clock source
// Your code here
return 0;
}
```
以上代码中,我们使用外部高速晶体振荡器(HSE)作为 PLL 输入,设置 PLL 倍频为 9,从而得到 72MHz 的系统时钟频率。在设置 PLL 倍频之前,我们需要先开启 HSE 并等待其稳定工作。然后,我们设置了 APB1 和 APB2 的预分频器分别为 2 和 1,使得 APB1 的时钟频率为 36MHz,APB2 的时钟频率为 72MHz。最后,我们启用了 PLL 并将其设置为系统时钟源,并等待 PLL 工作稳定后再执行后续的代码。
希望以上代码能够对你有所帮助,如果还有其他问题,欢迎再次提问。
阅读全文