本文將介紹SysTick定時(shí)器、其工作原理與寄存器、及對(duì)應(yīng)的應(yīng)用實(shí)例
SysTick定時(shí)器簡(jiǎn)介
首先、我們先解釋下定時(shí)器,“定時(shí)器”:能夠定時(shí)、計(jì)數(shù)的器件
SysTick稱為系統(tǒng)滴答定時(shí)器,它位于Cortex 內(nèi)核中是一個(gè)定時(shí)器,可以對(duì)輸入的時(shí)鐘進(jìn)行計(jì)數(shù)、若輸入的時(shí)鐘具有周期性的變化,則計(jì)數(shù)也相當(dāng)于計(jì)時(shí)。
系統(tǒng)滴答定時(shí)器一般用于操作系統(tǒng),為操作系統(tǒng)提供時(shí)基、維持操作系統(tǒng)的心跳; 系統(tǒng)滴答定時(shí)器每過(guò)一段時(shí)間會(huì)產(chǎn)生一個(gè)中斷,根據(jù)這個(gè)特性、操作系統(tǒng)就可以實(shí)現(xiàn)時(shí)間片的任務(wù)調(diào)度。
工作原理分析


從上述兩張圖我們可以看出:
系統(tǒng)滴答定時(shí)器的時(shí)鐘源是從SYSCLK處經(jīng)過(guò)分頻得到的,另外它處于內(nèi)核中;
重載數(shù)值寄存器有24個(gè)位、最大值為2^24-1,重載數(shù)值寄存器會(huì)將其中的數(shù)值裝載到定時(shí)器中;
當(dāng)每來(lái)一個(gè)時(shí)鐘脈沖后,定時(shí)器會(huì)進(jìn)行減一的操作(計(jì)數(shù)值-1);
當(dāng)計(jì)數(shù)值降為0時(shí),會(huì)觸發(fā)一個(gè)異常; 我們可以在異常處理函數(shù)中、自定義功能;
計(jì)數(shù)值降為0后,會(huì)再次重裝載數(shù)值;
寄存器講解
以下是寄存器總覽:

以下是SysTick定時(shí)器簡(jiǎn)單框圖:

以下是SysTick狀態(tài)和控制寄存器的說(shuō)明:

以下是SysTick重裝載值寄存器的說(shuō)明:

以下是SysTick當(dāng)前值寄存器的說(shuō)明:

以下是SysTick校準(zhǔn)值寄存器的說(shuō)明:

該寄存器可以為軟件提供校準(zhǔn)信息,由于CMSIS-Core提供了一個(gè)名為SystemCoreClock的軟件變量,所以沒(méi)有使用SysTick校準(zhǔn)寄存器。 系統(tǒng)初始化函數(shù)SystemInit()設(shè)置了該變量,而且只要系統(tǒng)時(shí)鐘配置改變是都會(huì)對(duì)該變量進(jìn)行更新。 這種軟件手段比利用SysTick校準(zhǔn)值寄存器的硬件方式更加靈活。
應(yīng)用實(shí)例
在SysTick的中斷函數(shù)內(nèi)1ms打印一次日志
void HAL_SYSTICK_Callback(void)
{
static uint32_t i = 0;
i++;
if(i == 1000)
{
printf("1ms\\n");
i = 0;
}
}
-
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
129964 -
內(nèi)核
+關(guān)注
關(guān)注
4文章
1467瀏覽量
42869 -
時(shí)鐘
+關(guān)注
關(guān)注
11文章
1971瀏覽量
134983 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3368瀏覽量
123582 -
Systick
+關(guān)注
關(guān)注
0文章
67瀏覽量
13967
發(fā)布評(píng)論請(qǐng)先 登錄
STM32 SYSTICK定時(shí)器常見問(wèn)題
Systick定時(shí)器基礎(chǔ)知識(shí)講解
SysTick定時(shí)器的工作原理介紹
SysTick—系統(tǒng)定時(shí)器
什么是SysTick定時(shí)器?實(shí)現(xiàn)STM32時(shí)鐘系統(tǒng)的詳細(xì)資料說(shuō)明
【野火指南者】STM32F103延時(shí)函數(shù)及其系統(tǒng)定時(shí)器—SysTick
STM32 Systick系統(tǒng)定時(shí)器
STM32入門(十五)----SysTick系統(tǒng)定時(shí)器
STM32F4: Systick滴答定時(shí)器-延時(shí)函數(shù)講解(五)
SysTick 定時(shí)器
STM32定時(shí)器US延時(shí)
Stm32入門——Systick定時(shí)器
STM32學(xué)習(xí)筆記(5)——系統(tǒng)定時(shí)器SysTick
STM32筆記(七)---Systick系統(tǒng)定時(shí)器
【STM32】SysTick滴答定時(shí)器(delay延時(shí)函數(shù)講解)
STM32 SysTick定時(shí)器講解
評(píng)論