SysTick定時器介紹
SysTick定時器也叫SysTick滴答定時器, 它是Cortex-M3內核的一個外設,被嵌入在 NVIC 中。它是一個 24 位向下遞減的定時器,每計數一次所需時間為1/SYSTICK,SYSTICK 是系統定時器時鐘,它可以直接取自系統時鐘,還可以通過系統時鐘 8 分頻后獲取,本套程序中我們采用后者,即每計數一次所需時間為1/(72/8)us,換句話說在 1us 的時間內會計數 9 次。當定時器計數到 0 時,將從LOAD 寄存器中自動重裝定時器初值,重新向下遞減計數,如此循環往復。如果開啟 SysTick 中斷的話,當定時器計數到 0,將產生一個中斷信號。因此只要知道計數的次數就可以準確得到它的延時時間。
SysTick 定時器通常應用在操作系統中,為其提供時鐘周期。
SysTick定時器操作
在 STM32F1 庫函數中,并沒有提供相應的 SysTick 定時器配置函數,我們要操作 SysTick 定時器就需要了解它的寄存器功能。 其實 SysTick 定時器寄存器很簡單,只有 4 個,分別是 CTRL、LOAD、VAL、CALIB。這些寄存器都可以在《CortexM3 權威指南(中文)》 apdx D NVIC 寄存器小結章節或者庫函數 core_cm3.h 文件中找到,里面有詳細的介紹。
SysTick定時器寄存器
(1)CTRL 寄存器
CTRL 是 SysTick 定時器的控制及狀態寄存器。其相應位功能如下:
注:CLKSOUTCE 位是用于選擇 SysTick 定時器時鐘來源,如果該位為 1,表示其時鐘是由系統時鐘直接提供即 72M。如果為 0,表示其時鐘是由系統時鐘八分頻后提供即 72/8=9M。
(2)LOAD 寄存器
LOAD 是 SysTick 定時器的重裝載數值寄存器。其相應位功能如下:
因為 STM32F1 的 SysTick 定時器是一個 24 位遞減計數器,因此重裝載寄存器中只使用到了低 24 位,即 bit0-bit23。當系統復位時,其值為 0。
(3)VAL 寄存器
VAL 是 SysTick 定時器的當前數值寄存器。其相應位功能如下:
同樣只有 bit0-bit23 有效,復位時值為 0。
(4)CALIB 寄存器
CALIB 是 SysTick 定時器的校準數值寄存器。其相應位功能如下:
此寄存器在定時實驗中不需要使用,可以不用了解。
SysTick定時器操作步驟
SysTick 定時器的操作可以分為 4 步:
設置 SysTick 定時器的時鐘源。
設置 SysTick 定時器的重裝初始值(如果要使用中斷的話,就將中斷
使能打開)。
清零 SysTick 定時器當前計數器的值。
打開 SysTick 定時器。
-
寄存器
+關注
關注
31文章
5421瀏覽量
123305 -
Systick
+關注
關注
0文章
63瀏覽量
13473
原文標題:STM32入門系列-SysTick系統定時器
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
【野火指南者】STM32F103延時函數及其系統定時器—SysTick

STM32F4: Systick滴答定時器-延時函數講解(五)

STM32_SysTick—系統定時器

SysTick——系統定時器

STM32系統定時器(SysTick)筆記

STM32筆記(七)---Systick系統定時器

[學習筆記]STM32F1 SYSTICK 滴答定時器(寄存器、標準庫、HAL庫)
![[學習筆記]STM32F1 <b class='flag-5'>SYSTICK</b> 滴答<b class='flag-5'>定時器</b>(<b class='flag-5'>寄存器</b>、標準庫、HAL庫)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32學習心得九:Systick滴答定時器和延時函數解讀

19章-SysTick—系統定時器

systick定時器 延時計時

評論