日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]Systick是STM32中特有的系統(tǒng)時鐘Systick有兩個功能:1.可以產生精確延時;2.可以提供給系統(tǒng)一個單獨的時鐘節(jié)拍。一般延時程序:DELAY(N){ for( i=0 ; i

Systick是STM32中特有的系統(tǒng)時鐘

Systick有兩個功能:

1.可以產生精確延時;

2.可以提供給系統(tǒng)一個單獨的時鐘節(jié)拍。

一般延時程序:

DELAY(N)

{ for( i=0 ; i<=x ; i++ ) ;

}

對于STM32系列的微處理器中,執(zhí)行一條指令只需要幾十ns,進行for循環(huán)時,要實現(xiàn)N毫秒延時,那么x的意義非常大,而且由于系統(tǒng)頻率的寬廣,很難計算出延時N毫秒的精確值,那么在一些高速電路中,是不允許的,容易出現(xiàn)問題,很難查找出來。尤其在液晶驅動中,延時要求非常精確。針對STM32的處理器中,需要重新設計一個方法實現(xiàn)該功能,來代替DELAY(N)延時;

cortex-m3中包含了一個Systick時鐘,Systick是一個24位的遞減計數(shù)器,設定初值并使能后,每經過1個系統(tǒng)時鐘周期,該計數(shù)器減1,計數(shù)到零時,systick自動重裝初值,并繼續(xù)計數(shù),同時內部的COUNTFLAG標志位會置1,觸發(fā)中斷(中斷如果使能);

外部晶振是8MHz,9倍頻,系統(tǒng)時鐘為72MHz,systick的最大值為9MHz(最大值為HCLK/8),在這個條件下,如果將計數(shù)器的效驗值設置為9000,將systick設置為9MHz,能夠產生1ms的時基值,即systick產生1ms的中斷,

systick時鐘共包含4個寄存器:

1.CTRL COUNTFLAG CLKSOURCE TICOUNT ENABLE

2.LOAD

3.VAL

4.CALIB

利用ST庫函數(shù)設置Systick的方法

1.調用SysTick_CountCmd() 失能SysTick計數(shù)器

2.調用SysTick_ITConfig() 失能SysTick中斷

3.調用SysTick_CLKSourceConfig() 配置SysTick的時鐘源

4.調用SysTick_SetReload() 設置SysTick 的效驗值

5.調用SysTick_ITConfig() 使能SysTick中斷

6.調用SysTick_CountCmd() 使能SysTick計數(shù)器

void SysTick_Config() //配置好,并將計數(shù)器使能

{

SysTick_CountCmd(SysTick_CountCmd_DISABLE);

SysTick_ITConfig(DISABLE);

SysTick_CLKSourceConfig( SysTick_CLKSourceConfig_EXTERN);

SysTick_SetReload(SysTick_SetReload_9000);

SysTick_ITConfig(ENABLE);

SysTick_CountCmd(SysTick_CountCmd_ENABLE);

}

延時函數(shù):

void Delay_MS(u16 diy)

{

Delay=diy;

while(Delay);

}

extern vu16 Delay;

void SysTickHandle() /systick中斷服務程序/

{

Delay--;

}

如果延時較長,那么該延時程序一定程度上還是在耗CPU的資源。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉