基于TIM定时中断的----输出比较 - 详解
一、输出比较与PWM简介
1、输出比较简介
主要用来输出PWM波形,PWM波形为驱动电机的必要条件;

2、PWM简介
PWM应用场景必须为惯性系统中;
原本LED只有完全亮和完全灭两种情况,但是通过PWM就可以实现LED的控制LED的亮度大小;
占空比决定了PWM等效出来的模拟电压的大小;
占空比越大,那等效的模拟电压就越趋近于高电平;
反之,那等效的模拟电压就越趋近于低电平;一般呈线性;


:就是PWM 是 Pulse Width Modulation 的缩写,中文叫脉冲宽度调制。简单说,它就是一种按固定频率输出高低电平脉冲的技术,核心特点
- 脉冲的周期固定(也就是频率不变);
- 脉冲的高电平持续时间(脉冲宽度)可以调节。
我们常用 占空比来描述 PWM 的关键参数:
占空比 = 一个周期内高电平时间 ÷ 整个周期时间 × 100%
举个例子:
- 周期是 10ms,高电平持续 5ms → 占空比 50%;
- 周期是 10ms,高电平持续 2ms → 占空比 20%;
- 高电平持续 10ms → 占空比 100%(相当于一直输出高电平);
- 高电平持续 0ms → 占空比 0%(相当于一直输出低电平)。
在单片机(比如 STM32)中,PWM 通常由定时器配合 GPIO 口生成,属于单片机的常用外设功能。
A、PWM 为什么能控制 LED 亮度
核心原理是 人眼的视觉暂留效应 + LED 的导通特性。
LED 的导通特性LED 是电流驱动器件,有电流利用就亮,没电流就灭。当 PWM 输出高电平时,LED 回路导通,LED 发光;当 PWM 输出低电平时,LED 回路截止,LED 熄灭。
视觉暂留效应人眼的视觉暂留时间约为1/24 秒,倘若 PWM 的频率足够高(比如 1kHz 以上),LED 的 “亮 - 灭” 切换速度会远超人类视觉感知的极限,我们看到的就不是闪烁的灯,而是持续发光的灯。
占空比决定亮度亮度本质是单位时间内 LED 发光的 “有效时长”:
- 占空比 越高→ 一个周期内高电平时间越长 → 单位时间内发光时间越长 → LED 越亮;
- 占空比 越低→ 一个周期内高电平时间越短 → 单位时间内发光时间越短 → LED 越暗。
比如:
- 占空比 100% → LED 一直亮 → 最亮;
- 占空比 10% → LED 只在 10% 的时间发光 → 很暗。
补充:实际电路注意事项
- 直接用单片机 PWM 口驱动 LED 时,要串联限流电阻,防止电流过大烧坏 LED 或单片机引脚;
- 如果驱动大功率 LED,应该加三极管或 MOS 管做开关放大。
B、PWM基本结构


C、PWM参数计算

二、输出比较模式
1、输出比较通道

2、输出比较8种模式


三、外部设备
1、舵机


2、直流电机及驱动


四、输出比较的代码部分
1、PWM控制LED呼吸灯
还是和之前一样一样的,进行封装,新建.c和.文件;

A、函数介绍






B、代码编写












这样LED就被点亮了,并且以1KHz的频率闪烁,



2、PWM舵机

代码与上面的结构一样;




A、创建舵机的模块,进行封装
和上面一样,进行.c与.h文档的创建,命名为servo;就是还
一样的;就是固定部分也





这样就封装好了;在放到.h档案中进行声明;

B、主函数中的编写


3、PWM驱动电机
A、进行封装

进行.c与.h文件的创建;笃固定部分一样;



接着放在头文件中进行声明,.h文件中;

B、主函数中的编写




浙公网安备 33010602011771号