在单片机和嵌入式开发中,经常会遇到PWM(脉宽调制)、定时器、SysTick(系统滴答定时器)这几个词。很多初学者容易把它们混为一谈,以为都是“定时相关的东西”。其实,它们在本质和应用上有明显差别。下面我们来梳理清楚。
一、基本概念
定时器(Timer)
MCU 内最基础的计数外设,通过计数时钟周期实现定时、计数功能。多数 MCU 内部有多个通用定时器,可配置为定时中断、事件触发或输入捕获等。
示例:STM32 16 位定时器每 1ms 触发一次中断
- HAL_TIM_Base_Start_IT(&htim2);// 启动定时器中断
- voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim){
- if(htim->Instance==TIM2){
- // 每 1ms 执行的任务
- }
- }
PWM(Pulse Width Modulation,脉宽调制)
严格来说,PWM 并非独立硬件,而是基于定时器的一种输出模式。它通过控制高电平与低电平的占空比,调节输出信号的平均电压,实现 LED 调光、马达调速等。
示例:STM32 生成 1 kHz,50% 占空比 PWM
- HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
- __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,500);// 占空比 50%
SysTick(System Tick Timer,系统滴答定时器)ARM Cortex-M 系列内核自带的24 位倒计时定时器,主要用于操作系统节拍(OS Tick),也可作为轻量级定时器使用。它独立于通用定时器,硬件固定,配置简单。、
示例:使用 SysTick 生成 1ms Tick
- HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);// 系统时钟 1ms
- voidSysTick_Handler(void){
- HAL_IncTick();// 系统时间递增
- }

- 三、应用场景举例
- 定时器(Timer)系统定时中断(如每 1 ms 触发一次)
- 测量脉冲宽度(捕获模式)
- 外部信号计数(计数模式)
- 与 PWM 配合生成复杂波形PWM电机调速(通过占空比控制速度)
- LED 调光(调节亮度,避免闪烁)
- 模拟电压输出(通过滤波电路平滑波形)
- 简单音频输出(模拟 DAC 方案)
- SysTickRTOS 心跳定时(如 FreeRTOS 1ms Tick)
- 简单延时函数(中断或计数实现)
- 周期性任务调度(轻量级应用)
- 四、总结定时器:基础硬件,功能灵活,可用于计数、比较、捕获等。
- PWM:定时器的应用模式,用于波形输出与占空比调节。
- SysTick:Cortex-M 内核自带的简化定时器,主要服务系统调度。
- 可以类比理解:定时器 = 万能工具箱PWM = 工具箱里的电烙铁(专门输出“热量”)SysTick = 内核赠送的小手表(简单好用,但功能有限)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
PWM
+关注
关注
116文章
5912浏览量
227314 -
定时器
+关注
关注
23文章
3379浏览量
125207 -
Systick
+关注
关注
0文章
67浏览量
14058
发布评论请先 登录
相关推荐
热点推荐
STM32 SYSTICK定时器常见问题
我们知道,STM32库函数里通常使用来自内核的系统定时器SYSTICK作为时基,实现计数延时。一般来讲,ST公司提供的库函数里将SYSTICK定时器配置为1ms的
发表于 09-13 16:20
•4125次阅读
SysTick—系统定时器
程序简介 -工程名称:SysTick系统定时器 -实验平台: 秉火STM32 F429 开发板 -MDK版本:5.16 -ST固件库版本:1.5.1 【 !】功能简介: 控制开发板上的RGB彩灯
发表于 12-12 19:12
•7次下载
STM32F4: Systick滴答定时器-延时函数讲解(五)
Systick定时器基础知识讲解Systick相关寄存器库函数讲解delay延时函数讲解(Systick应用)(借鉴正点原子网课)(一)
发表于 12-01 15:21
•15次下载
STM32笔记(七)---Systick系统定时器
SysTick系统定时器文章目录SysTick系统定时器一、 概念1-1 Systick简介1-2 Sy
发表于 12-23 20:01
•1次下载
systick定时器 延时计时
systick定时器是属于cortex M内核的外设,专门为RTOS的系统时钟节拍设计的。systick是cortex M内核自带的,因此和debug调试接口一样,与单片机型号和厂商无关,只要
发表于 01-18 10:28
•7次下载
【STM32】SysTick滴答定时器(delay延时函数讲解)
Systick定时器,是一个简单的定时器,对于CM3、CM4内核芯片,都有Systick定时器。Syst
发表于 02-10 10:35
•13次下载
PWM、定时器、SysTick 区别及应用场景
评论