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