資料介紹
提到systick 不得不抱怨以下STM32 的用戶手冊,既然提供了systick 的功能,為啥手冊里卻只提了一下?后來筆者上網搜的時候,才發(fā)現(xiàn),抱怨的不僅僅是我一個人。閑話不說,下面將筆者搜集的資料進行總結。
1. systick介紹
Systick 就是一個定時器而已,只是它放在了NVIC 中,主要的目的是為了給操作系統(tǒng)提供一個硬件上的中斷(號稱滴答中斷)。沒有學過操作系統(tǒng)的同學,可能會很郁悶,啥叫滴答中斷?這里來簡單地解釋一下。操作系統(tǒng)進行運轉的時候,也會有“心跳”。它會根據“心跳”的節(jié)拍來工作,把整個時間段分成很多小小的時間片,每個任務每次只能運行一個“時間片”的時間長度就得退出給別的任務運行,這樣可以確保任何一個任務都不會霸占整個系統(tǒng)不放。這個心跳,可以通過定時器來周期性觸發(fā),而這個定時器就是systick。很明顯,這個“心跳”是不允許任何人來隨意地訪問和修改的。只要不把它在SysTick 控制及狀態(tài)寄存器中的使能位清除,就永不停息。知道systick 在系統(tǒng)中的地位后,我們來了解systick 的實現(xiàn)。注意,本期教程并沒有講述systick 如何在操作系統(tǒng)中的運行,因為這對初學者來說比較復雜。我們這里只是舉例說明systick 的使用。它有四個寄存器,筆者把它列出來:
STK_CSR, 0xE000E010 -- 控制寄存器
STK_LOAD, 0xE000E014 -- 重載寄存器
STK_VAL, 0xE000E018 -- 當前值寄存器
STK_CALRB, 0xE000E01C -- 校準值寄存器
現(xiàn)在我們想通過Systick 定時器做一個精確的延遲函數,比如讓LED 精確延遲1 秒鐘閃亮一次。

思路:利用systick 定時器為遞減計數器,設定初值并使能它后,它會每個系統(tǒng)時鐘周期計數器減1,計數到0 時,SysTick 計數器自動重裝初值并繼續(xù)計數,同時觸發(fā)中斷。
那么每次計數器減到0,時間經過了:系統(tǒng)時鐘周期* 計數器初值。我們使用72M 作為系統(tǒng)時鐘,那么每次計數器減1 所用的時間是1/72M,計數器的初值如果是72000,那么每次計數器減到0,時間經過(1/72M) * 72000 =0.001,即1ms。
現(xiàn)在我們做出來的Delay(1),就是1 毫秒延遲。Delay(1000)就是1 秒。有了以上的思路后,systick 的編程非常簡單。首先,我們需要有一個72M 的systick 系統(tǒng)時鐘,那么,使用下面這個時鐘就OK!SystemInit();
這個函數可以讓主頻運行到72M。可以把它作為systick 的時鐘源。為了配合演示,可以使用LED 顯示來做,于是我們設置了GPIO_Config();初始化函數,初始化了芯達STM32 開發(fā)板上的LED4 燈。
接著開始配置systick,實際上配置systick 的嚴格過程如下:使用ST 的函數庫使用systick 的方法:
1、調用SysTick_CounterCmd() -- 失能SysTick 計數器
2、調用SysTick_ITConfig () -- 失能SysTick 中斷
3、調用SysTick_CLKSourceConfig() -- 設置SysTick 時鐘源。
4、調用SysTick_SetReload() -- 設置SysTick 重裝載值。
5、調用SysTick_ITConfig () -- 使能SysTick 中斷
6、調用SysTick_CounterCmd() -- 開啟SysTick 計數器
- STM32入門(十五)----SysTick系統(tǒng)定時器
- STM32單片機入門教程之GPIO編程的詳細資料說明 64次下載
- 西門子PLC教程之結構化編程的詳細資料說明 38次下載
- 什么是SysTick定時器?實現(xiàn)STM32時鐘系統(tǒng)的詳細資料說明 3次下載
- 單片機入門視頻教程之基本電路知識的詳細資料說明 29次下載
- FPGA入門系列實驗教程之液晶1602顯示和相關資料合集免費下載 19次下載
- DSP設計與應用教程之匯編程序設計舉例的資料說明 19次下載
- FPGA教程之FPGA入門閃爍燈實驗的詳細資料說明 25次下載
- AIR202 Luat系列入門教程之控制LED小燈的詳細資料說明 19次下載
- C語言入門基礎教程之函數的詳細資料說明 6次下載
- Python基礎教程之Python快速入門課件資料免費下載 330次下載
- Linux入門教程之Linux的基本操作詳細資料說明 14次下載
- 芯達STM32入門系列教程之Systick編程入門資料 10次下載
- 打開LabvIEW編程之門_LabVIEW入門篇 0次下載
- STM32入門系列教程之七《GPIO編程》 1.8k次下載
- 個人對STM32 SysTick的總結(寄存器操作) 3.6k次閱讀
- 關于SYSTICK的COUNTFLAG標志的小疑惑 2.6k次閱讀
- SysTick時鐘 1.5k次閱讀
- 一文詳解SysTick寄存器和SysTick編程 6.6k次閱讀
- STM32的SysTick時鐘源是來自Cortex系統(tǒng)定時器嗎? 5.8k次閱讀
- SysTick定時器介紹,SysTick定時器寄存器 1.9w次閱讀
- STM32單片機Systick函數的使用方法 6.5k次閱讀
- STM32單片機SysTick系統(tǒng)滴答功能解析 6.6k次閱讀
- STM32單片機對Systick心跳定時器的設計 4.6k次閱讀
- STM32單片機的SYSTick定時器的設置 4.3k次閱讀
- 如何使用STM32實現(xiàn)systick的精確延時 6.2k次閱讀
- SysTick定時器實現(xiàn)走馬燈的功能 3k次閱讀
- 如何用SysTick實現(xiàn)測量程序運行時間 6.8k次閱讀
- STM32知識:什么是SYSTICK 作用是什么 5.1w次閱讀
- PLC編程是什么?圖解PLC編程入門教程 7.3w次閱讀
下載排行
本周
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 16次下載 | 10 積分
- 2反激式開關電源設計解析
- 0.89 MB | 2次下載 | 5 積分
- 3簡易光伏控制器原理圖資料
- 0.07 MB | 1次下載 | 5 積分
- 4TPS23755數據手冊
- 0.07 MB | 次下載 | 免費
- 536伏,10兆赫茲低噪聲雙運算放大器COS5532 技術手冊
- 0.41 MB | 次下載 | 免費
- 6LM5176 55V 寬輸入電壓同步4開關降壓/升壓控制器技術手冊
- 2.40 MB | 次下載 | 免費
- 7MCU模塊原理圖資料
- 0.37 MB | 次下載 | 1 積分
- 8LoRa1121 FCC&CE認證 多頻段LoRa無線通訊模塊規(guī)格書
- 997.05 KB | 次下載 | 免費
本月
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 16次下載 | 10 積分
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 7次下載 | 10 積分
- 3SDFM 激光測距模塊模組手冊
- 0.54 MB | 7次下載 | 免費
- 4直流電路的組成和基本定律
- 1.67 MB | 4次下載 | 免費
- 5SW6238V ACCC 三 PD 四口多協(xié)議移動電源 SOC規(guī)格書
- 0.59 MB | 4次下載 | 1 積分
- 6安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 7IP6742_datasheet_100V8A 同步 BUCK 控制器
- 2.16 MB | 3次下載 | 免費
- 8PAW3395DM-T6QU:光學游戲導航芯片手冊
- 1.26 MB | 2次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81605次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73829次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論