整理系統(tǒng)時(shí)鐘定時(shí)器--SysTick的應(yīng)用
在STM32的應(yīng)用中,使用Cortex-M3 內(nèi)核的SysTick作為定時(shí)時(shí)鐘,設(shè)定每一毫秒產(chǎn)生一次中斷,在中斷處理函數(shù)里對N減一,在Delay(N)函數(shù)中循環(huán)檢測N是否為0,不為0則進(jìn)行循環(huán)等待;若為0則關(guān)閉SysTick時(shí)鐘,退出函數(shù)。
本文引用地址:http://m.butianyuan.cn/article/201611/322078.htm外部晶振為8MHz,9倍頻,系統(tǒng)時(shí)鐘為72MHz,SysTick的最高頻率為9MHz(最大為HCLK/8),在這個(gè)條件下,把SysTick 效驗(yàn)值設(shè)置成9000,將SysTick 時(shí)鐘設(shè)置為9MHz, 就能夠產(chǎn)生1ms的時(shí)間基值,即SysTick產(chǎn)生1ms的中斷。
延遲時(shí)間將不隨系統(tǒng)時(shí)鐘頻率改變。
固件庫(ST)中SysTick的相關(guān)函數(shù):
1、SysTick_CounterCmd(
2、SysTick_ITConfig (
3、SysTick_CLKSourceConfig( ) //設(shè)置SysTick時(shí)鐘源。
4、SysTick_SetReload ( )
5、SysTick_GetCounter( )
6、SysTick_GetFlagStatus( ) //檢測測定的SysTick是否被標(biāo)記
初始化相關(guān)模塊:
SysTick_CounterCmd(SysTick_Counter_Disable);
SysTick_ITConfig(DISABLE);
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
中斷處理:
{
延時(shí)代碼:
}
應(yīng)用代碼:
Delay(300); // 延時(shí) 300ms
評論