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