在單片機和嵌入式開發中,經常會遇到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文章
5876瀏覽量
226026 -
定時器
+關注
關注
23文章
3368瀏覽量
124077 -
Systick
+關注
關注
0文章
67瀏覽量
13993
發布評論請先 登錄
相關推薦
熱點推薦
STM32 SYSTICK定時器常見問題
我們知道,STM32庫函數里通常使用來自內核的系統定時器SYSTICK作為時基,實現計數延時。一般來講,ST公司提供的庫函數里將SYSTICK定時器配置為1ms的
發表于 09-13 16:20
?4000次閱讀
SysTick—系統定時器
程序簡介 -工程名稱:SysTick系統定時器 -實驗平臺: 秉火STM32 F429 開發板 -MDK版本:5.16 -ST固件庫版本:1.5.1 【 !】功能簡介: 控制開發板上的RGB彩燈
發表于 12-12 19:12
?7次下載
MCU中定時器的可能應用場景
還可用于其他應用場景,如生成 PWM 輸出和捕捉輸入等。? 在任何嵌入式應用中,CPU 和資源利用對實現應用功能具有至關重要的作用。例如,如果沒有定時器,要使 LED 每 2秒閃爍一次,則應用需要連續檢查經過的時間。當應用定期檢
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 區別及應用場景
評論