STM32之系統(tǒng)時鐘基定時器
STM32F10x內(nèi)核中都具有一個系統(tǒng)時鐘基定時器,是一個24位的遞減計數(shù)器。在其設(shè)置處置并使能后,每經(jīng)過一個系統(tǒng)時鐘周期,計數(shù)值減1.檔計數(shù)值減到0時系統(tǒng)時基定時器又會自動重載初值。
系統(tǒng)時基定時器每10ms就會產(chǎn)生一次中斷。
接下來主要介紹庫函數(shù)。
1.SysTick_CLKSourceConfig函數(shù)的功能是設(shè)置SysClock的時鐘源。其中輸入?yún)?shù)為SysTick_CLKSource:SysTick時鐘源
參數(shù)可取的值為:SysTick_CLKSource_HCLK_Div8;SysTick_CLKSource_HCLK.表示SysTick時鐘源為AHB時鐘除以8和AHB時鐘源。
例:設(shè)置系統(tǒng)定時器時鐘為AHB時鐘。
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
2.Sys_SetReload函數(shù)的功能是設(shè)置SysTick重裝載值。其輸入?yún)?shù)是32位1和0x00FFFFF之間的值。(u32 Reload)
例:設(shè)定系統(tǒng)定時器的重載值為90000 。
SysTick_SetReload(900000);
3.SysTick_CounterCmd函數(shù)的功能是使能或者失能SysTick計數(shù)器。其輸入?yún)?shù)是SysTick_Counter:SysTick計數(shù)器新狀態(tài)
參數(shù)可取的值為SysTick_Counter_Disable/Enable/Clear.表示失能、使能、清楚計數(shù)器值為0.
例:使能系統(tǒng)定時器。
SysTick_CounterCmd(SysTick_Counter_Enable);
4.SysTick_ITconfig函數(shù)的功能是使能或者失能SysTick中斷。
5.SysTick_GetCounter函數(shù)的功能是獲取SysTick計數(shù)器的值。
例:獲取系統(tǒng)定時器的計數(shù)值。是一個32位的值。
u32 SysTickCurrentCounterValue;
SysTickCurrentCounterValue= SysTick_GetCounter();