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