0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PWM、定时器、SysTick 区别及应用场景

信盈达 2025-11-17 10:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

单片机嵌入式开发中,经常会遇到PWM(脉宽调制)、定时器、SysTick(系统滴答定时器)这几个词。很多初学者容易把它们混为一谈,以为都是“定时相关的东西”。其实,它们在本质和应用上有明显差别。下面我们来梳理清楚。

一、基本概念

定时器(Timer)

MCU 内最基础的计数外设,通过计数时钟周期实现定时、计数功能。多数 MCU 内部有多个通用定时器,可配置为定时中断、事件触发或输入捕获等。

示例:STM32 16 位定时器每 1ms 触发一次中断

  1. HAL_TIM_Base_Start_IT(&htim2);// 启动定时器中断
  2. voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim){
  3. if(htim->Instance==TIM2){
  4. // 每 1ms 执行的任务
  5. }
  6. }

PWM(Pulse Width Modulation,脉宽调制)

严格来说,PWM 并非独立硬件,而是基于定时器的一种输出模式。它通过控制高电平与低电平的占空比,调节输出信号的平均电压,实现 LED 调光、马达调速等。

示例:STM32 生成 1 kHz,50% 占空比 PWM

  1. HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
  2. __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,500);// 占空比 50%

SysTick(System Tick Timer,系统滴答定时器)ARM Cortex-M 系列内核自带的24 位倒计时定时器,主要用于操作系统节拍(OS Tick),也可作为轻量级定时器使用。它独立于通用定时器,硬件固定,配置简单。、

示例:使用 SysTick 生成 1ms Tick

  1. HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);// 系统时钟 1ms
  2. voidSysTick_Handler(void){
  3. HAL_IncTick();// 系统时间递增
  4. }
  5. wKgZO2kaysqAHvpJAAB9_kTLVdA230.png
  6. 三、应用场景举例
  7. 定时器(Timer)系统定时中断(如每 1 ms 触发一次)
  8. 测量脉冲宽度(捕获模式)
  9. 外部信号计数(计数模式)
  10. 与 PWM 配合生成复杂波形PWM电机调速(通过占空比控制速度)
  11. LED 调光(调节亮度,避免闪烁)
  12. 模拟电压输出(通过滤波电路平滑波形)
  13. 简单音频输出(模拟 DAC 方案)
  14. SysTickRTOS 心跳定时(如 FreeRTOS 1ms Tick)
  15. 简单延时函数(中断或计数实现)
  16. 周期性任务调度(轻量级应用)
  17. 四、总结定时器:基础硬件,功能灵活,可用于计数、比较、捕获等。
  18. PWM:定时器的应用模式,用于波形输出与占空比调节。
  19. SysTick:Cortex-M 内核自带的简化定时器,主要服务系统调度。
  20. 可以类比理解:定时器 = 万能工具箱PWM = 工具箱里的电烙铁(专门输出“热量”)SysTick = 内核赠送的小手表(简单好用,但功能有限)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    116

    文章

    5847

    浏览量

    223818
  • 定时器
    +关注

    关注

    23

    文章

    3360

    浏览量

    121744
  • Systick
    +关注

    关注

    0

    文章

    67

    浏览量

    13869
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32 SYSTICK定时器常见问题

    我们知道,STM32库函数里通常使用来自内核的系统定时器SYSTICK作为时基,实现计数延时。一般来讲,ST公司提供的库函数里将SYSTICK定时器配置为1ms的
    发表于 09-13 16:20 3767次阅读

    Systick定时器是什么?

    Stm32入门——Systick定时器Systick定时器是什么?从原理上来说,Systick定时器
    发表于 02-11 07:21

    SysTick—系统定时器

    程序简介 -工程名称:SysTick系统定时器 -实验平台: 秉火STM32 F429 开发板 -MDK版本:5.16 -ST固件库版本:1.5.1 【 !】功能简介: 控制开发板上的RGB彩灯
    发表于 12-12 19:12 7次下载

    SysTick定时器介绍,SysTick定时器寄存

    在 STM32F1 库函数中,并没有提供相应的 SysTick 定时器配置函数,我们要操作 SysTick 定时器就需要了解它的寄存功能。
    的头像 发表于 02-11 15:37 1.9w次阅读
    <b class='flag-5'>SysTick</b><b class='flag-5'>定时器</b>介绍,<b class='flag-5'>SysTick</b><b class='flag-5'>定时器</b>寄存<b class='flag-5'>器</b>

    SAM系列MCU中的定时器的可能应用场景

    还可用于其他应用场景,如生成 PWM 输出和捕捉输入等。 在任何嵌入式应用中,CPU 和资源利用对实现应用功能具有至关重要的作用。例如,如果没有定时器,要使 LED 每2秒闪烁一次,则应用需要连续检查经过的时间。当应用定期检查经
    的头像 发表于 09-18 10:39 2396次阅读

    MCU中定时器的可能应用场景

    还可用于其他应用场景,如生成 PWM 输出和捕捉输入等。  在任何嵌入式应用中,CPU 和资源利用对实现应用功能具有至关重要的作用。例如,如果没有定时器,要使 LED 每 2秒闪烁一次,则应用需要连续检查经过的时间。当应用定期检
    的头像 发表于 11-17 10:46 4256次阅读

    STM32入门(十五)----SysTick系统定时器

    SysTick系统定时器SysTick简介SysTick框图SysTick定时实验程序
    发表于 12-01 15:06 8次下载
    STM32入门(十五)----<b class='flag-5'>SysTick</b>系统<b class='flag-5'>定时器</b>

    Systick定时器几个简单的函数简介

    目录Systick定时器Systick定时器是什么?SysTick的四个寄存寄存
    发表于 12-04 17:06 1次下载
    <b class='flag-5'>Systick</b><b class='flag-5'>定时器</b>几个简单的函数简介

    SysTick 定时器

    11.1关于 SysTick 定时器SysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个
    发表于 12-05 14:51 9次下载
    <b class='flag-5'>SysTick</b> <b class='flag-5'>定时器</b>

    Stm32入门——Systick定时器

    Stm32入门——Systick定时器Systick定时器是什么?从原理上来说,Systick定时器
    发表于 12-07 17:51 12次下载
    Stm32入门——<b class='flag-5'>Systick</b><b class='flag-5'>定时器</b>

    STM32笔记(七)---Systick系统定时器

    SysTick系统定时器文章目录SysTick系统定时器一、 概念1-1 Systick简介1-2 Sy
    发表于 12-23 20:01 1次下载
    STM32笔记(七)---<b class='flag-5'>Systick</b>系统<b class='flag-5'>定时器</b>

    systick定时器 延时计时

    systick定时器是属于cortex M内核的外设,专门为RTOS的系统时钟节拍设计的。systick是cortex M内核自带的,因此和debug调试接口一样,与单片机型号和厂商无关,只要
    发表于 01-18 10:28 7次下载
    <b class='flag-5'>systick</b><b class='flag-5'>定时器</b> 延时计时

    【STM32】SysTick滴答定时器(delay延时函数讲解)

    Systick定时器,是一个简单的定时器,对于CM3、CM4内核芯片,都有Systick定时器Syst
    发表于 02-10 10:35 13次下载
    【STM32】<b class='flag-5'>SysTick</b>滴答<b class='flag-5'>定时器</b>(delay延时函数讲解)

    STM32 SysTick定时器讲解

    本文将介绍SysTick定时器、其工作原理与寄存、及对应的应用实例
    的头像 发表于 04-21 11:31 3224次阅读
    STM32 <b class='flag-5'>SysTick</b><b class='flag-5'>定时器</b>讲解

    高精度定时器与高级控制定时器 PWM 封波后再恢复的区别

    高精度定时器与高级控制定时器 PWM 封波后再恢复的区别
    的头像 发表于 10-17 16:52 1432次阅读
    高精度<b class='flag-5'>定时器</b>与高级控制<b class='flag-5'>定时器</b> <b class='flag-5'>PWM</b> 封波后再恢复的<b class='flag-5'>区别</b>