STM32定时器与PWM输出怎么配置?嵌入式面试定时器原理与应用考点

浏览量:31
时间: 2026-08-26 17:24:10
嵌入式单片机中等难度技术面试STM32PWM

STM32定时器PWM输出配置 - 嵌入式单片机面试

本文概述

STM32定时器是嵌入式面试高频考点。定时器分为基本、通用、高级和低功耗四类,PWM频率等于时钟频率除以预分频值加1再乘自动重装载值加1,占空比由捕获比较寄存器决定。输出比较支持PWM模式,输入捕获可测脉冲宽度和频率,高级定时器带死区控制用于电机驱动。配置流程涉及时钟使能、GPIO复用、时基参数设置和输出比较配置。

核心要点速览

  • STM32定时器分四类:基本定时器(TIM6/7)、通用定时器(TIM2-5)、高级定时器(TIM1/8)、低功耗定时器

  • PWM频率 = 时钟频率 / ((PSC+1) × (ARR+1)),占空比 = CCR / (ARR+1) × 100%

  • 输出比较模式有多种:冻结、匹配置位、匹配清零、PWM模式1/2等

  • 输入捕获可测量脉冲宽度和信号频率,配合DMA可实现多通道高频采集

  • 高级定时器带死区时间控制和刹车输入,专用于电机驱动等功率电子场景

一、面试题

请说明STM32定时器的工作原理,以及PWM输出的配置步骤和参数计算。

二、面试官考察点

1. 寄存器级理解

是否理解定时器的时基单元、PSC预分频器、ARR自动重装载寄存器、CCR捕获比较寄存器等核心寄存器的作用。

2. 实际配置能力

能否讲出完整的配置流程,从时钟使能、GPIO配置到时基初始化、输出比较设置,反映动手经验。

3. 参数计算能力

给定需求(频率、分辨率、占空比范围)能否反推出PSC和ARR的取值,这是项目中常遇到的问题。

4. 功能广度认知

是否知道定时器除了PWM还能做输入捕获、输出比较、编码器接口、单脉冲模式等其他功能。

三、回答思路

1. STM32定时器的分类和特点

类型代表主要功能典型应用
基本定时器TIM6、TIM716位向上计数,无输入输出通道定时中断、DAC触发
通用定时器TIM2-TIM516位或32位,4个独立通道,支持PWM/输入捕获/输出比较PWM输出、脉冲测量、编码器
高级定时器TIM1、TIM8通用定时器全部功能+死区插入+刹车输入+互补输出电机驱动、开关电源
低功耗定时器LPTIM低功耗模式下仍可工作低功耗唤醒、低频率测量

2. PWM输出的原理

PWM即脉冲宽度调制,核心是定时器的CNT计数器从0递增到ARR值,不断循环。当CNT小于CCR时输出一个电平,大于CCR时输出另一个电平,这样就产生了固定频率、可调占空比的方波。

关键公式:

  • PWM频率 = 定时器时钟频率 / ((PSC + 1) × (ARR + 1))

  • 占空比 = CCR / (ARR + 1) × 100%

  • PWM分辨率 = log2(ARR + 1) 位

工程经验:PWM频率和分辨率是一对矛盾。ARR越大分辨率越高,但在相同时钟下频率越低。以72MHz时钟为例,ARR为999时频率约1kHz、分辨率约10位;ARR为99时频率约10kHz、分辨率约7位。实际项目需根据需求折中选择。

3. PWM输出配置步骤

以STM32F103的TIM2_CH1为例,使用标准库配置流程:

  1. 使能时钟:RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE) 和 GPIO时钟

  2. 配置GPIO为复用推挽输出(TIM2_CH1对应PA0引脚)

  3. 配置定时器时基:设置PSC预分频值和ARR自动重装载值

  4. 配置输出比较模式:选择PWM模式1或2,设置CCR初始值

  5. 使能输出比较通道和定时器主输出

  6. 启动定时器:TIM_Cmd(TIM2, ENABLE)

4. 定时器的其他功能

输入捕获

检测外部引脚上的电平跳变并记录当前计数值,可测量脉冲宽度、信号周期和频率。配合上升沿/下降沿分别捕获,可以算出高电平和低电平持续时间。高频测量时可用DMA搬运捕获值,减少CPU占用。

输出比较

当计数器与CCR匹配时改变输出电平,可产生精确延时的脉冲。与PWM的区别是输出比较只在匹配时刻动作一次,而PWM是周期性自动翻转。常用于单脉冲输出、波形生成和定时触发。

编码器接口

通用定时器的两个通道可配置为编码器接口模式,自动计算旋转方向和位置,无需CPU参与。用于直流有刷电机的闭环位置和速度检测。

死区与刹车

高级定时器特有功能。死区时间用于防止上下桥臂直通,刹车输入用于过流等故障时快速关断输出,是电机驱动和电源应用的重要安全机制。

四、追问(4个)

追问1:PWM模式1和模式2有什么区别?

PWM模式1:CNT小于CCR时输出有效电平,大于时输出无效电平。PWM模式2:CNT小于CCR时输出无效电平,大于时输出有效电平。两种模式在计数方向不同时表现不同,但在向上计数模式下,两者的区别就是输出电平相反。实际应用中选哪种取决于需要高电平有效还是低电平有效,以及极性配置的组合。

追问2:怎么用定时器测量一个未知频率的方波?

两种方法:测频法和测周法。测频法在固定闸门时间(如1秒)内计数脉冲个数,适合高频信号。测周法用已知频率的定时器时钟计数信号一个周期内的时钟数,适合低频信号。具体实现:配置定时器输入捕获为上升沿触发,第一次上升沿记录CCR值,第二次上升沿再记录一次,差值就是周期对应的时钟数,除以时钟频率就是信号周期。频率很低时可以测多个周期取平均提高精度。

追问3:PWM输出频率不够高怎么办?

几个方向:提高定时器时钟频率(检查APB预分频器设置,确认定时器是否运行在最高时钟);减小ARR值(牺牲分辨率换频率);使用高速的定时器(有些系列的高级定时器或专用定时器时钟更高);如果是多路PWM且频率一致,考虑用定时器的主从模式同步,或用DMA加GPIO模拟更高频率的输出。分辨率不够的情况下,如果只是调光调速等应用,影响通常不大。

追问4:定时器更新中断和比较中断有什么区别?

更新中断(UEV)发生在计数器溢出(向上计数到ARR或向下计数到0)时,对应PWM的每个周期开始或结束。比较中断(CCxIF)发生在计数器与CCR匹配时。更新中断频率等于PWM频率,比较中断在每个PWM周期内也会触发一次。如果只需要周期性做事情,用更新中断就行;如果要在特定占空比时刻触发ADC采样等操作,就用比较中断,配合DMA可以实现PWM周期内的精准采样。

五、失分表达

  • "PWM频率就是定时器时钟频率除以ARR"——忽略了PSC预分频器,正确公式要考虑PSC+1和ARR+1

  • "所有定时器功能一样"——基本定时器没有输出通道,高级定时器才有死区和刹车

  • "占空比等于CCR除以ARR"——应该是CCR除以(ARR+1),ARR是计数上限值,计数从0开始

  • "PWM只能用于电机调光"——PWM还广泛用于D类功放、开关电源、通信调制等领域

六、准备动作

  • 熟悉定时器时基结构:CNT、PSC、ARR、CCR各寄存器的作用

  • 能手算PWM频率和占空比,给定需求能反推PSC和ARR

  • 能讲出PWM输出、输入捕获、输出比较三种模式的区别和配置差异

  • 准备一个实际项目案例,比如电机调速、LED调光或脉冲测量

  • 了解高级定时器的死区时间计算和刹车功能应用场景

七、核心关键词

STM32定时器 PWM输出 输入捕获 输出比较 预分频器 占空比 编码器接口 死区控制


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
什么是交叉编译?

在⼀种计算机环境中运⾏的编译程序,能编译出在另外⼀种环境下运⾏的代码,我们就称这种编译器⽀持交叉 编译。这个编译过程就叫交叉编译。简单地说,就是在⼀个平台上⽣成... 详情>>

2023-10-25 10:00:34
PCB去耦电容布局有哪些设计原则?EMC工程师面试去耦电容安装方法与选型

PCB去耦电容布局有哪些设计原则?EMC工程师面试去耦电容安装方法与选型分类:EMC电磁兼容经验级别:中级难度:中等题型:设计原则题本文概述去耦电容是PCB电源... 详情>>

2026-08-24 10:02:32
面试PCB Layout设计工作面试官一般会问什么?

面试PCB Layout设计工作面试官一般会问什么?问:您好!我是电子行业的资深技术人员,我大学里学的是电子信息工程专业,现在是高级硬件工程师,目前是在方案公司... 详情>>

2023-11-27 10:26:06
射频混频器怎么选型与设计?射频工程师面试混频器原理与参数详解

分类:射频电路经验级别:中级难度:中等偏难题型:原理+选型题本文概述混频器是射频收发系统的核心器件之一,其性能直接决定接收机的灵敏度和动态范围。本文从面试角度系... 详情>>

2026-08-21 10:43:46
射频链路输出功率偏低,射频工程师面试怎样排查?

题库分类:射频电路 适合经验:0-3年、3-5年 难度:中高级 题型:项目排查题 面试题射频发射链路... 详情>>

2026-07-29 14:01:23
开班信息