stm32 tim2 配置 10HZ
时间: 2024-08-14 19:07:21 浏览: 51
STM32的TIM2定时器配置为10Hz通常涉及以下几个步骤:
1. **初始化时钟源**:首先需要确保TIM2的计数器时钟来源于外部输入或内部时钟。如果你想要10Hz的周期,一般会选择从APB1(PCLK1)外设总线获取,它通常是系统时钟频率的一半。
```c
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
```
2. **设置预分频器**:TIM2的时钟通过预分频器进行分频。假设系统时钟是50MHz,预分频系数选择64(因为50MHz / (2 * 64) ≈ 10kHz),你可以这样做:
```c
RCC_APB1PeriphClockConfig(RCC_APB1Periph_TIM2, RCC_APB1PeriphClockSpeed_50MHz);
TIM_TimeBasePreloadConfig(TIM2,.TIM_PrescalerLoad_Enable); // 允许预加载
TIM_TimeBasePredividerConfig(TIM2, TIM_Prescaler_Div64); // 分频系数设置为64
```
3. **配置TIM2模式**:配置TIM2工作在模式3(PWM)或模式1(常规计数器)取决于你需要计数还是生成脉冲宽度调制信号。
4. **设定自动装载值**:设置TIM2的自动装载寄存器(ARR)等于期望的周期数减一,这里为9999(10000Hz的倒数):
```c
uint16_t preload = (uint16_t)(SysTick_Config((SysTick_CLKSource_Hz / (2 * 64)) - 1)); // 指向10ms位置(大约)
TIM_ARRPreloadConfig(TIM2, preload);
```
5. **启动定时器**:
```c
TIM_Cmd(TIM2, ENABLE);
```
阅读全文