怎么配置STM32F103ZET6定时器系统时钟为72MHz标准库代码
时间: 2024-04-10 17:34:58 浏览: 141
配置stm32时钟
要配置STM32F103ZET6定时器系统时钟为72MHz,可以按照以下步骤进行:
1. 首先,确保你已经正确地设置了系统时钟为72MHz。这可以通过RCC(Reset and Clock Control)模块来实现。使用`RCC_DeInit()`函数将RCC模块恢复到默认设置,然后配置时钟源为外部晶振(HSE),并设置适当的分频系数。
```c
// 复位并配置RCC模块
RCC_DeInit();
// 启用外部晶振
RCC_HSEConfig(RCC_HSE_ON);
RCC_WaitForHSEStartUp();
// 设置PLL时钟源为外部晶振,分频系数设置为9(8MHz / 1 * 9 = 72MHz)
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
// 启用PLL
RCC_PLLCmd(ENABLE);
// 等待PLL稳定
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
// 设置系统时钟源为PLL
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
// 设置AHB总线分频系数为1(72MHz)
RCC_HCLKConfig(RCC_SYSCLK_Div1);
// 设置APB1总线分频系数为2(36MHz)
RCC_PCLK1Config(RCC_HCLK_Div2);
// 设置APB2总线分频系数为1(72MHz)
RCC_PCLK2Config(RCC_HCLK_Div1);
// 更新系统时钟频率
SystemCoreClockUpdate();
```
2. 然后,根据你要配置的定时器,选择相应的定时器外设,并对其进行配置。
以定时器2为例,使用标准库函数进行配置,可以按照以下步骤进行:
```c
// 启用定时器2的时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
// 配置定时器
TIM_TimeBaseInitTypeDef TIM_InitStructure;
TIM_InitStructure.TIM_Prescaler = 0; // 不分频
TIM_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; // 向上计数模式
TIM_InitStructure.TIM_Period = 7199; // 计数周期为7200(72MHz / 7200 = 10kHz)
TIM_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1; // 不分频
TIM_InitStructure.TIM_RepetitionCounter = 0; // 重复计数器为0
TIM_TimeBaseInit(TIM2, &TIM_InitStructure);
// 启用定时器2
TIM_Cmd(TIM2, ENABLE);
```
3. 最后,你可以根据需要配置定时器的其他功能,如中断、PWM等。
这样,你就成功地将STM32F103ZET6的定时器系统时钟配置为72MHz了。
阅读全文