資料介紹
提到systick 不得不抱怨以下STM32 的用戶手冊(cè),既然提供了systick 的功能,為啥手冊(cè)里卻只提了一下?后來(lái)筆者上網(wǎng)搜的時(shí)候,才發(fā)現(xiàn),抱怨的不僅僅是我一個(gè)人。閑話不說(shuō),下面將筆者搜集的資料進(jìn)行總結(jié)。
1. systick介紹
Systick 就是一個(gè)定時(shí)器而已,只是它放在了NVIC 中,主要的目的是為了給操作系統(tǒng)提供一個(gè)硬件上的中斷(號(hào)稱滴答中斷)。沒(méi)有學(xué)過(guò)操作系統(tǒng)的同學(xué),可能會(huì)很郁悶,啥叫滴答中斷?這里來(lái)簡(jiǎn)單地解釋一下。操作系統(tǒng)進(jìn)行運(yùn)轉(zhuǎn)的時(shí)候,也會(huì)有“心跳”。它會(huì)根據(jù)“心跳”的節(jié)拍來(lái)工作,把整個(gè)時(shí)間段分成很多小小的時(shí)間片,每個(gè)任務(wù)每次只能運(yùn)行一個(gè)“時(shí)間片”的時(shí)間長(zhǎng)度就得退出給別的任務(wù)運(yùn)行,這樣可以確保任何一個(gè)任務(wù)都不會(huì)霸占整個(gè)系統(tǒng)不放。這個(gè)心跳,可以通過(guò)定時(shí)器來(lái)周期性觸發(fā),而這個(gè)定時(shí)器就是systick。很明顯,這個(gè)“心跳”是不允許任何人來(lái)隨意地訪問(wèn)和修改的。只要不把它在SysTick 控制及狀態(tài)寄存器中的使能位清除,就永不停息。知道systick 在系統(tǒng)中的地位后,我們來(lái)了解systick 的實(shí)現(xiàn)。注意,本期教程并沒(méi)有講述systick 如何在操作系統(tǒng)中的運(yùn)行,因?yàn)檫@對(duì)初學(xué)者來(lái)說(shuō)比較復(fù)雜。我們這里只是舉例說(shuō)明systick 的使用。它有四個(gè)寄存器,筆者把它列出來(lái):
STK_CSR, 0xE000E010 -- 控制寄存器
STK_LOAD, 0xE000E014 -- 重載寄存器
STK_VAL, 0xE000E018 -- 當(dāng)前值寄存器
STK_CALRB, 0xE000E01C -- 校準(zhǔn)值寄存器
現(xiàn)在我們想通過(guò)Systick 定時(shí)器做一個(gè)精確的延遲函數(shù),比如讓LED 精確延遲1 秒鐘閃亮一次。
思路:利用systick 定時(shí)器為遞減計(jì)數(shù)器,設(shè)定初值并使能它后,它會(huì)每個(gè)系統(tǒng)時(shí)鐘周期計(jì)數(shù)器減1,計(jì)數(shù)到0 時(shí),SysTick 計(jì)數(shù)器自動(dòng)重裝初值并繼續(xù)計(jì)數(shù),同時(shí)觸發(fā)中斷。
那么每次計(jì)數(shù)器減到0,時(shí)間經(jīng)過(guò)了:系統(tǒng)時(shí)鐘周期* 計(jì)數(shù)器初值。我們使用72M 作為系統(tǒng)時(shí)鐘,那么每次計(jì)數(shù)器減1 所用的時(shí)間是1/72M,計(jì)數(shù)器的初值如果是72000,那么每次計(jì)數(shù)器減到0,時(shí)間經(jīng)過(guò)(1/72M) * 72000 =0.001,即1ms。
現(xiàn)在我們做出來(lái)的Delay(1),就是1 毫秒延遲。Delay(1000)就是1 秒。有了以上的思路后,systick 的編程非常簡(jiǎn)單。首先,我們需要有一個(gè)72M 的systick 系統(tǒng)時(shí)鐘,那么,使用下面這個(gè)時(shí)鐘就OK!SystemInit();
這個(gè)函數(shù)可以讓主頻運(yùn)行到72M??梢园阉鳛閟ystick 的時(shí)鐘源。為了配合演示,可以使用LED 顯示來(lái)做,于是我們?cè)O(shè)置了GPIO_Config();初始化函數(shù),初始化了芯達(dá)STM32 開(kāi)發(fā)板上的LED4 燈。
接著開(kāi)始配置systick,實(shí)際上配置systick 的嚴(yán)格過(guò)程如下:使用ST 的函數(shù)庫(kù)使用systick 的方法:
1、調(diào)用SysTick_CounterCmd() -- 失能SysTick 計(jì)數(shù)器
2、調(diào)用SysTick_ITConfig () -- 失能SysTick 中斷
3、調(diào)用SysTick_CLKSourceConfig() -- 設(shè)置SysTick 時(shí)鐘源。
4、調(diào)用SysTick_SetReload() -- 設(shè)置SysTick 重裝載值。
5、調(diào)用SysTick_ITConfig () -- 使能SysTick 中斷
6、調(diào)用SysTick_CounterCmd() -- 開(kāi)啟SysTick 計(jì)數(shù)器
- STM32入門(mén)(十五)----SysTick系統(tǒng)定時(shí)器
- STM32單片機(jī)入門(mén)教程之GPIO編程的詳細(xì)資料說(shuō)明 61次下載
- 西門(mén)子PLC教程之結(jié)構(gòu)化編程的詳細(xì)資料說(shuō)明 37次下載
- 什么是SysTick定時(shí)器?實(shí)現(xiàn)STM32時(shí)鐘系統(tǒng)的詳細(xì)資料說(shuō)明 3次下載
- 單片機(jī)入門(mén)視頻教程之基本電路知識(shí)的詳細(xì)資料說(shuō)明 29次下載
- FPGA入門(mén)系列實(shí)驗(yàn)教程之液晶1602顯示和相關(guān)資料合集免費(fèi)下載 19次下載
- DSP設(shè)計(jì)與應(yīng)用教程之匯編程序設(shè)計(jì)舉例的資料說(shuō)明 19次下載
- FPGA教程之FPGA入門(mén)閃爍燈實(shí)驗(yàn)的詳細(xì)資料說(shuō)明 25次下載
- AIR202 Luat系列入門(mén)教程之控制LED小燈的詳細(xì)資料說(shuō)明 19次下載
- C語(yǔ)言入門(mén)基礎(chǔ)教程之函數(shù)的詳細(xì)資料說(shuō)明 6次下載
- Python基礎(chǔ)教程之Python快速入門(mén)課件資料免費(fèi)下載 319次下載
- Linux入門(mén)教程之Linux的基本操作詳細(xì)資料說(shuō)明 14次下載
- 芯達(dá)STM32入門(mén)系列教程之Systick編程入門(mén)資料 10次下載
- 打開(kāi)LabvIEW編程之門(mén)_LabVIEW入門(mén)篇 0次下載
- STM32入門(mén)系列教程之七《GPIO編程》 1752次下載
- 個(gè)人對(duì)STM32 SysTick的總結(jié)(寄存器操作) 1992次閱讀
- 關(guān)于SYSTICK的COUNTFLAG標(biāo)志的小疑惑 1597次閱讀
- SysTick時(shí)鐘 871次閱讀
- STM32F103系列開(kāi)發(fā)_點(diǎn)亮LED燈 2373次閱讀
- STM32的SysTick時(shí)鐘源是來(lái)自Cortex系統(tǒng)定時(shí)器嗎? 5382次閱讀
- SysTick定時(shí)器介紹,SysTick定時(shí)器寄存器 1.8w次閱讀
- STM32單片機(jī)Systick函數(shù)的使用方法 5976次閱讀
- STM32單片機(jī)SysTick系統(tǒng)滴答功能解析 6046次閱讀
- STM32單片機(jī)對(duì)Systick心跳定時(shí)器的設(shè)計(jì) 4195次閱讀
- STM32單片機(jī)的SYSTick定時(shí)器的設(shè)置 3875次閱讀
- 如何使用STM32實(shí)現(xiàn)systick的精確延時(shí) 5964次閱讀
- SysTick定時(shí)器實(shí)現(xiàn)走馬燈的功能 2780次閱讀
- 如何用SysTick實(shí)現(xiàn)測(cè)量程序運(yùn)行時(shí)間 6082次閱讀
- STM32知識(shí):什么是SYSTICK 作用是什么 5w次閱讀
- PLC編程是什么?圖解PLC編程入門(mén)教程 6.9w次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論