☰
STM32学习(九)—— PWM
2026/10/20 11:06:42 网站建设 项目流程

一、PWM的概述

1. PWM的概念

PWM指的是脉冲宽度调制,是一种利用微处理器的数字输出能力来控制模拟电路的技术。

PWM技术的关键参数有两个,一个是频率,一个是占空比,频率指的是利用STM32的定时器通道输出脉冲的次数,占空比指的是一个周期内高电平所占的比例。

PWM技术一般用在工业控制领域(控制电机的转速、控制舵机的角度......),所以必须掌握

2. PWM的原理

PWM技术的原理其实很简单,只不过是利用STM32定时器种的某个通道的输出比较功能(PWM模式)来输出周期性的脉冲信号,只不过要调节脉冲的宽度(调节占空比)。

思考:外设到底是和哪个定时器的哪个通道连接在一起的? 参考芯片数据手册和原理图

可以看到PF9 引脚和 TIM4_CH1 是相关联的,所以就需要把 PF9 引脚的功能设置为复用功能

函数原型

void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)

函数参数

参数一:GPIOx 指的是要复用的引脚端口 如GPIOF

参数二:GPIO_PinSource 指的是要复用的引脚编号 如GPIO_PinSource9

参数三:GPIO_AF 指的是要复用的引脚功能 如GPIO_AF_TIM14

3. PWM的使用

PWM的使用流程可以参考stm32f4xx_tim.c源文件的注释部分,如下图所示

(1)打开GPIO引脚的时钟+定时器的时钟

(2)配置GPIO的引脚(引脚模式需要设置为复用模式)+初始化GPIO

(3)把GPIO引脚的功能复用为对应的定时器

(4)配置定时器的定时时间(预分频+自动重载值)+初始化TIM

(5)配置定时器通道的参数(输出极性、PWM模式......)+初始化定时器通道TIM_OCxInit()

(6)使能定时器的预装载寄存器,调用TIM_OCxPreloadConfig

(7)使能自动重载预装载寄存器的ARPE位

(8)使能定时器 调用TIM_Cmd()

注意:PWM计数使用的是定时器通道的输出比较功能,所以不需要配置NVIC,也不需要编写中断服务函数。

如果想要调节PWM的占空比,可以利用TIM_SetComparex() x= 1 2 3 4 根据通道选

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询