正点原子stm32f103ZET5精英版定时器2初始化函数
时间: 2024-04-29 08:05:13 浏览: 13
以下是基于STM32Cube HAL库的定时器2初始化函数示例代码:
```c
/* 定时器2初始化 */
void TIM2_Init(void)
{
TIM_HandleTypeDef htim2;
/* 配置定时器2的时钟源为APB1时钟的2倍 */
__HAL_RCC_TIM2_CLK_ENABLE();
/* 设置定时器2的参数 */
htim2.Instance = TIM2;
htim2.Init.Prescaler = 35999; // 定时器2的预分频值
htim2.Init.CounterMode = TIM_COUNTERMODE_UP; // 定时器2的计数模式
htim2.Init.Period = 499; // 定时器2的自动重载寄存器值
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; // 定时器2的时钟分频系数
htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; // 使能定时器2的自动重载寄存器
/* 初始化定时器2 */
HAL_TIM_Base_Init(&htim2);
/* 启用定时器2中断 */
HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM2_IRQn);
}
```
该函数使用了HAL库提供的HAL_TIM_Base_Init函数来初始化定时器2,同时启用了中断。其中,预分频值和自动重载寄存器值根据需要进行修改。在函数中通过调用`__HAL_RCC_TIM2_CLK_ENABLE()`函数来开启TIM2的时钟源。需要注意的是,该函数需要在main函数中被调用,以确保时钟源被正确开启。