学习STM32 定时器
微控制器内部集成了多种类型的定时器,这些定时器在嵌入式系统中扮演着重要角色,用于计时、延时、事件触发以及PWM波形生成、脉冲捕获等应用。中几个定时器的简单介绍:1. TIM1:这是一个高级定时器,不仅具备基本的定时中断功能,还拥有内外时钟源选择、输入捕获、输出比较、编码器接口以及主从触发模式等多种功能。这使得TIM1能够适用于各种复杂的应用场景,为开发者提供强大的时间控制和信号处理能力。2. TI
1. 定时器介绍
2.STM32 定时器的分类
STM32 系列(如 F1、F4、H7 等)的定时器根据功能复杂度可分为以下几类,不同系列的定时器数量和具体功能略有差异,但核心逻辑一致:
| 类型 | 典型型号(以 F1 为例) | 核心功能 | 适用场景 |
|---|---|---|---|
| 基本定时器 | TIM6、TIM7 | 16 位向上计数;仅支持定时中断;可触发 DAC 输出 | 简单定时(如周期性采样) |
| 通用定时器 | TIM2~TIM5、TIM9~TIM14 | 包含基本定时器所有功能;16/32 位计数(TIM2/TIM5 为 32 位);支持定时、PWM、输入捕获、输出比较、触发 ADC | PWM 控制(LED、舵机)、测频 |
| 高级定时器 | TIM1、TIM8 | 包含通用定时器所有功能;额外支持互补 PWM、死区控制、刹车功能 | 电机驱动(如三相电机、步进电机) |
| 系统滴答定时器 | SysTick | 24 位向下计数;内核自带,简单定时 |
3、定时器核心工作原理
所有定时器的核心是计数器,通过时钟源驱动计数器递增 / 递减,配合预分频器和自动重装载机制实现精确计时:
-
时钟源:
定时器的计数时钟可来自内部(如 APB1/APB2 时钟)、外部引脚(如 TIMx_CHx)或其他定时器的触发信号(内部触发)。
例如:通用定时器默认使用内部时钟(APB1 时钟,F1 系列通常为 72MHz)。 -
预分频器(PSC):
对时钟源进行分频,降低计数频率。公式:计数时钟频率 = 时钟源频率 / (PSC + 1)。
例:72MHz 时钟经 PSC=71 分频后,计数时钟为 1MHz(每 1μs 计数一次)。 -
计数器(CNT):
按计数时钟频率递增 / 递减(基本定时器仅向上计数,高级定时器支持双向计数)。 -
自动重装载寄存器(ARR):
存储计数最大值,当计数器值达到 ARR 时,触发 “更新事件”(可产生中断),并重置计数器(向上计数时)。
定时时间公式:定时时间 = (ARR + 1) * (PSC + 1) / 时钟源频率。
例:时钟源 72MHz,PSC=71,ARR=999 → 定时时间 = 1000 * 72 / 72,000,000 = 0.001 秒(1ms)。
4.定时器计数模式

5. 定时器溢出时间计算
6. 定时器中断实验配置步骤

7.代码编写(定时器中断点灯)




openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)