資料介紹
提到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。可以把它作為systick 的時(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入門(十五)----SysTick系統(tǒng)定時(shí)器
- STM32單片機(jī)入門教程之GPIO編程的詳細(xì)資料說(shuō)明 61次下載
- 西門子PLC教程之結(jié)構(gòu)化編程的詳細(xì)資料說(shuō)明 37次下載
- 什么是SysTick定時(shí)器?實(shí)現(xiàn)STM32時(shí)鐘系統(tǒng)的詳細(xì)資料說(shuō)明 3次下載
- 單片機(jī)入門視頻教程之基本電路知識(shí)的詳細(xì)資料說(shuō)明 27次下載
- FPGA入門系列實(shí)驗(yàn)教程之液晶1602顯示和相關(guān)資料合集免費(fèi)下載 18次下載
- DSP設(shè)計(jì)與應(yīng)用教程之匯編程序設(shè)計(jì)舉例的資料說(shuō)明 19次下載
- FPGA教程之FPGA入門閃爍燈實(shí)驗(yàn)的詳細(xì)資料說(shuō)明 25次下載
- AIR202 Luat系列入門教程之控制LED小燈的詳細(xì)資料說(shuō)明 19次下載
- C語(yǔ)言入門基礎(chǔ)教程之函數(shù)的詳細(xì)資料說(shuō)明 6次下載
- Python基礎(chǔ)教程之Python快速入門課件資料免費(fèi)下載 314次下載
- Linux入門教程之Linux的基本操作詳細(xì)資料說(shuō)明 14次下載
- 芯達(dá)STM32入門系列教程之Systick編程入門資料 10次下載
- 打開(kāi)LabvIEW編程之門_LabVIEW入門篇 0次下載
- STM32入門系列教程之七《GPIO編程》 1751次下載
- 個(gè)人對(duì)STM32 SysTick的總結(jié)(寄存器操作) 1359次閱讀
- 關(guān)于SYSTICK的COUNTFLAG標(biāo)志的小疑惑 1079次閱讀
- SysTick時(shí)鐘 711次閱讀
- STM32F103系列開(kāi)發(fā)_點(diǎn)亮LED燈 2117次閱讀
- STM32的SysTick時(shí)鐘源是來(lái)自Cortex系統(tǒng)定時(shí)器嗎? 5295次閱讀
- SysTick定時(shí)器介紹,SysTick定時(shí)器寄存器 1.7w次閱讀
- STM32單片機(jī)Systick函數(shù)的使用方法 5875次閱讀
- STM32單片機(jī)SysTick系統(tǒng)滴答功能解析 5899次閱讀
- STM32單片機(jī)對(duì)Systick心跳定時(shí)器的設(shè)計(jì) 4082次閱讀
- STM32單片機(jī)的SYSTick定時(shí)器的設(shè)置 3719次閱讀
- 如何使用STM32實(shí)現(xiàn)systick的精確延時(shí) 5841次閱讀
- SysTick定時(shí)器實(shí)現(xiàn)走馬燈的功能 2662次閱讀
- 如何用SysTick實(shí)現(xiàn)測(cè)量程序運(yùn)行時(shí)間 5869次閱讀
- STM32知識(shí):什么是SYSTICK 作用是什么 5w次閱讀
- PLC編程是什么?圖解PLC編程入門教程 6.8w次閱讀
下載排行
本周
- 1Keysight B1500A 半導(dǎo)體器件分析儀用戶手冊(cè)、說(shuō)明書 (中文)
- 19.00 MB | 4次下載 | 免費(fèi)
- 2使用TL431設(shè)計(jì)電源
- 0.67 MB | 2次下載 | 免費(fèi)
- 3BT134雙向可控硅手冊(cè)
- 1.74 MB | 2次下載 | 1 積分
- 4一種新型高效率的服務(wù)器電源系統(tǒng)
- 0.85 MB | 1次下載 | 1 積分
- 5LabVIEW環(huán)形控件
- 0.01 MB | 1次下載 | 1 積分
- 6PR735,使用UCC28060的600W交錯(cuò)式PFC轉(zhuǎn)換器
- 540.03KB | 1次下載 | 免費(fèi)
- 751單片機(jī)核心板原理圖
- 0.12 MB | 1次下載 | 5 積分
- 8BP2879DB支持調(diào)光調(diào)滅的非隔離低 PF LED 驅(qū)動(dòng)器
- 1.44 MB | 1次下載 | 免費(fèi)
本月
- 1開(kāi)關(guān)電源設(shè)計(jì)原理手冊(cè)
- 1.83 MB | 52次下載 | 免費(fèi)
- 2FS5080E 5V升壓充電兩串鋰電池充電管理IC中文手冊(cè)
- 8.45 MB | 23次下載 | 免費(fèi)
- 3DMT0660數(shù)字萬(wàn)用表產(chǎn)品說(shuō)明書
- 0.70 MB | 13次下載 | 免費(fèi)
- 4UC3842/3/4/5電源管理芯片中文手冊(cè)
- 1.75 MB | 12次下載 | 免費(fèi)
- 5ST7789V2單芯片控制器/驅(qū)動(dòng)器英文手冊(cè)
- 3.07 MB | 11次下載 | 1 積分
- 6TPS54202H降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
- 1.02MB | 8次下載 | 免費(fèi)
- 7STM32F101x8/STM32F101xB手冊(cè)
- 1.69 MB | 8次下載 | 1 積分
- 8基于MSP430FR6043的超聲波氣體流量計(jì)快速入門指南
- 2.26MB | 7次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評(píng)論
查看更多