STM32學(xué)習(xí)筆記(六)SysTick

SysTick 是一個(gè) 24bit 的系統(tǒng)計(jì)時(shí)器杖们,計(jì)數(shù)器從 LOAD寄存器 中讀取數(shù)值(該數(shù)值最大為24bit)肩狂,不斷遞減,遞減為 0 時(shí)相應(yīng)標(biāo)志位置 1孝治,產(chǎn)生一個(gè)中斷請求审磁;
該寄存器通常用來產(chǎn)生精確的 延時(shí)(Delay)函數(shù);

SysTick寄存器

SysTick寄存器映射——STM32F10xxx Cortex-M3編程手冊
  • 端口配置低寄存器 --- CTRL(Control and status register):使能SysTick和相應(yīng)中斷請求杭措,并配置時(shí)鐘來源钾恢;

    • 作用---使能計(jì)數(shù)器(counter):位0 置 1 時(shí)計(jì)數(shù)器使能,置 0 時(shí)計(jì)數(shù)器關(guān)閉刑桑;

    • 作用---使能中斷請求:位1 置 1 時(shí)中斷請求使能募舟,置 0 時(shí)中斷請求關(guān)閉(SysTick中斷為中斷向量表 系統(tǒng)中斷第16項(xiàng));


      SysTick中斷
    • 作用---選擇時(shí)鐘源:位2 置 1 時(shí)選擇 AHB 時(shí)鐘作為源琢锋,置 0 時(shí)選擇 AHB / 8 作為時(shí)鐘源呢灶;(默認(rèn)情況下AHBCLK = 72M)

    • 位16 為標(biāo)志位 COUNTFLAG,為 1 時(shí)表明計(jì)數(shù)器的值為 0鲸阻;

    • 復(fù)位值:0x0000 0000

  • 讀取值寄存器 --- LOAD(reload value register):位23:0 儲存計(jì)數(shù)器要讀取的值缨睡;

    • 復(fù)位值:0x0000 0000
  • 當(dāng)前值寄存器 --- VAL(current value register):位23:0 儲存計(jì)數(shù)器當(dāng)前的值;

    • 復(fù)位值:0x0000 0000
  • 校準(zhǔn)值寄存器 --- CALIB(calibration value register):位23:0 儲存計(jì)數(shù)器校準(zhǔn)值和相應(yīng)標(biāo)志位的寄存器细诸;

    • 復(fù)位值:0x0002328

常用SysTick固件庫函數(shù) (core_cm3.h)

SysTick配置函數(shù) --- SysTick_Config

static __INLINE uint32_t SysTick_Config(uint32_t ticks);
  • 作用:使能 SysTick陋守,使能中斷請求并把該中斷優(yōu)先級設(shè)置為最低(0x1111)利赋,把時(shí)鐘源設(shè)置為 AHBCLK猩系,同時(shí)設(shè)置 reload = ticks;
  • 注意:SysTick中斷優(yōu)先級寄存器與外設(shè)中斷優(yōu)先級寄存器不同季希,但仍可按優(yōu)先級規(guī)則判斷優(yōu)先級幽纷;
  • ticks:LOAD寄存器中的值,為reload值友浸,必須是24位以內(nèi)的樹;
  • 返回值:0則表示配置成功收恢,1則表示配置失敗伦意;
  • 示例:
SysTick_Config(72000);          //默認(rèn)系統(tǒng)為72M
//一般可不需讀取返回值,只要ticks值在24位以內(nèi)即可配置成功

編寫Delay函數(shù)

編寫一個(gè) 毫秒(ms) 級Delay函數(shù)

計(jì)算

設(shè) SysTick 時(shí)鐘源的頻率為 CLK (MHz)熏矿,LOAD寄存器中存儲的值為 reload离钝;
可得計(jì)數(shù)器在 1毫秒(ms) 內(nèi)震蕩 CLK×1000 次(即遞減 CLK×1000 次),我們要讓計(jì)數(shù)器中的值在 1毫秒(ms) 從 reload 遞減至 0卵渴,將 reload 的值設(shè)置為 CLK×1000 即可

若采用默認(rèn)情況下 選取 AHBCLK = 72MHz昔榴,則將 LOAD 寄存器設(shè)置為 72000 即可碘橘。

程序思路

  • SysTick_Config函數(shù) 使能SysTick并配置 reload值;
  • 不斷讀取 COUNTFLAG 位直至其值為 1蛹屿,確認(rèn)計(jì)數(shù)器已經(jīng)遞減至 0错负;
  • 產(chǎn)生相應(yīng)中斷;

實(shí)現(xiàn)代碼

void SysTick_Delay_ms(uint32_t tms)
{
    uint32_t i;
    SysTick_Config(72000);          //默認(rèn)系統(tǒng)為72M
    
    for(i=0; i<tms; i++)
    {
      //等待標(biāo)志位 COUNTFLAG 為 1
      while(!((SysTick->CTRL) & (1<<16)));
    }
    //使能中斷請求
    SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末折联,一起剝皮案震驚了整個(gè)濱河市识颊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祥款,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抠艾,死亡現(xiàn)場離奇詭異桨昙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)齐苛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門桂塞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人炊甲,你說我怎么就攤上這事欲芹。” “怎么了菱父?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵浙宜,是天一觀的道長。 經(jīng)常有香客問我粟瞬,道長,這世上最難降的妖魔是什么俗批? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮岁忘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘干像。我一直安慰自己,他們只是感情好速客,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布什乙。 她就那樣靜靜地躺著,像睡著了一般辅愿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上点待,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天癞埠,我揣著相機(jī)與錄音,去河邊找鬼苗踪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛削锰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颅夺,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蛹稍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了唆姐?” 一聲冷哼從身側(cè)響起拗慨,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赵抢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體减噪,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年醋闭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了朝卒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡囚企,死狀恐怖瑞眼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伤疙,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布黍特,位于F島的核電站,受9級特大地震影響灭衷,放射性物質(zhì)發(fā)生泄漏谬墙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一部默、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧傅蹂,春花似錦、人聲如沸份蝴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽案糙。三九已至,卻和暖如春时捌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奢讨。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扒袖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓僚稿,卻偏偏與公主長得像蟀伸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子啊掏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容