在單片機(jī)和嵌入式開(kāi)發(fā)中,經(jīng)常會(huì)遇到PWM(脈寬調(diào)制)、定時(shí)器、SysTick(系統(tǒng)滴答定時(shí)器)這幾個(gè)詞。很多初學(xué)者容易把它們混為一談,以為都是“定時(shí)相關(guān)的東西”。其實(shí),它們?cè)诒举|(zhì)和應(yīng)用上有明顯差別。下面我們來(lái)梳理清楚。
一、基本概念
定時(shí)器(Timer)
MCU 內(nèi)最基礎(chǔ)的計(jì)數(shù)外設(shè),通過(guò)計(jì)數(shù)時(shí)鐘周期實(shí)現(xiàn)定時(shí)、計(jì)數(shù)功能。多數(shù) MCU 內(nèi)部有多個(gè)通用定時(shí)器,可配置為定時(shí)中斷、事件觸發(fā)或輸入捕獲等。
示例:STM32 16 位定時(shí)器每 1ms 觸發(fā)一次中斷
- HAL_TIM_Base_Start_IT(&htim2);// 啟動(dòng)定時(shí)器中斷
- voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim){
- if(htim->Instance==TIM2){
- // 每 1ms 執(zhí)行的任務(wù)
- }
- }
PWM(Pulse Width Modulation,脈寬調(diào)制)
嚴(yán)格來(lái)說(shuō),PWM 并非獨(dú)立硬件,而是基于定時(shí)器的一種輸出模式。它通過(guò)控制高電平與低電平的占空比,調(diào)節(jié)輸出信號(hào)的平均電壓,實(shí)現(xiàn) LED 調(diào)光、馬達(dá)調(diào)速等。
示例: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,系統(tǒng)滴答定時(shí)器)ARM Cortex-M 系列內(nèi)核自帶的24 位倒計(jì)時(shí)定時(shí)器,主要用于操作系統(tǒng)節(jié)拍(OS Tick),也可作為輕量級(jí)定時(shí)器使用。它獨(dú)立于通用定時(shí)器,硬件固定,配置簡(jiǎn)單。、
示例:使用 SysTick 生成 1ms Tick
- HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);// 系統(tǒng)時(shí)鐘 1ms
- voidSysTick_Handler(void){
- HAL_IncTick();// 系統(tǒng)時(shí)間遞增
- }

- 三、應(yīng)用場(chǎng)景舉例
- 定時(shí)器(Timer)系統(tǒng)定時(shí)中斷(如每 1 ms 觸發(fā)一次)
- 測(cè)量脈沖寬度(捕獲模式)
- 外部信號(hào)計(jì)數(shù)(計(jì)數(shù)模式)
- 與 PWM 配合生成復(fù)雜波形PWM電機(jī)調(diào)速(通過(guò)占空比控制速度)
- LED 調(diào)光(調(diào)節(jié)亮度,避免閃爍)
- 模擬電壓輸出(通過(guò)濾波電路平滑波形)
- 簡(jiǎn)單音頻輸出(模擬 DAC 方案)
- SysTickRTOS 心跳定時(shí)(如 FreeRTOS 1ms Tick)
- 簡(jiǎn)單延時(shí)函數(shù)(中斷或計(jì)數(shù)實(shí)現(xiàn))
- 周期性任務(wù)調(diào)度(輕量級(jí)應(yīng)用)
- 四、總結(jié)定時(shí)器:基礎(chǔ)硬件,功能靈活,可用于計(jì)數(shù)、比較、捕獲等。
- PWM:定時(shí)器的應(yīng)用模式,用于波形輸出與占空比調(diào)節(jié)。
- SysTick:Cortex-M 內(nèi)核自帶的簡(jiǎn)化定時(shí)器,主要服務(wù)系統(tǒng)調(diào)度。
- 可以類比理解:定時(shí)器 = 萬(wàn)能工具箱PWM = 工具箱里的電烙鐵(專門輸出“熱量”)SysTick = 內(nèi)核贈(zèng)送的小手表(簡(jiǎn)單好用,但功能有限)
-
PWM
+關(guān)注
關(guān)注
116文章
5841瀏覽量
223631 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3358瀏覽量
121635 -
Systick
+關(guān)注
關(guān)注
0文章
67瀏覽量
13856
發(fā)布評(píng)論請(qǐng)先 登錄
STM32 SYSTICK定時(shí)器常見(jiàn)問(wèn)題
通用定時(shí)器區(qū)別
Systick定時(shí)器是什么?
SysTick—系統(tǒng)定時(shí)器
SysTick定時(shí)器介紹,SysTick定時(shí)器寄存器
SAM系列MCU中的定時(shí)器的可能應(yīng)用場(chǎng)景
MCU中定時(shí)器的可能應(yīng)用場(chǎng)景
STM32入門(十五)----SysTick系統(tǒng)定時(shí)器
Systick定時(shí)器幾個(gè)簡(jiǎn)單的函數(shù)簡(jiǎn)介
SysTick 定時(shí)器
Stm32入門——Systick定時(shí)器
STM32筆記(七)---Systick系統(tǒng)定時(shí)器
systick定時(shí)器 延時(shí)計(jì)時(shí)
【STM32】SysTick滴答定時(shí)器(delay延時(shí)函數(shù)講解)

PWM、定時(shí)器、SysTick 區(qū)別及應(yīng)用場(chǎng)景
評(píng)論