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