電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>單片機>STM32入門系列教程之Systick的編程資料說明

STM32入門系列教程之Systick的編程資料說明

2020-07-17 | rar | 0.34 MB | 次下載 | 免費

資料介紹

  提到systick 不得不抱怨以下STM32 的用戶手冊,既然提供了systick 的功能,為啥手冊里卻只提了一下?后來筆者上網(wǎng)搜的時候,才發(fā)現(xiàn),抱怨的不僅僅是我一個人。閑話不說,下面將筆者搜集的資料進行總結(jié)。

  1. systick介紹

  Systick 就是一個定時器而已,只是它放在了NVIC 中,主要的目的是為了給操作系統(tǒng)提供一個硬件上的中斷(號稱滴答中斷)。沒有學過操作系統(tǒng)的同學,可能會很郁悶,啥叫滴答中斷?這里來簡單地解釋一下。操作系統(tǒng)進行運轉(zhuǎn)的時候,也會有“心跳”。它會根據(jù)“心跳”的節(jié)拍來工作,把整個時間段分成很多小小的時間片,每個任務(wù)每次只能運行一個“時間片”的時間長度就得退出給別的任務(wù)運行,這樣可以確保任何一個任務(wù)都不會霸占整個系統(tǒng)不放。這個心跳,可以通過定時器來周期性觸發(fā),而這個定時器就是systick。很明顯,這個“心跳”是不允許任何人來隨意地訪問和修改的。只要不把它在SysTick 控制及狀態(tài)寄存器中的使能位清除,就永不停息。知道systick 在系統(tǒng)中的地位后,我們來了解systick 的實現(xiàn)。注意,本期教程并沒有講述systick 如何在操作系統(tǒng)中的運行,因為這對初學者來說比較復(fù)雜。我們這里只是舉例說明systick 的使用。它有四個寄存器,筆者把它列出來:

  STK_CSR, 0xE000E010 -- 控制寄存器

  STK_LOAD, 0xE000E014 -- 重載寄存器

  STK_VAL, 0xE000E018 -- 當前值寄存器

  STK_CALRB, 0xE000E01C -- 校準值寄存器

  現(xiàn)在我們想通過Systick 定時器做一個精確的延遲函數(shù),比如讓LED 精確延遲1 秒鐘閃亮一次。

  思路:利用systick 定時器為遞減計數(shù)器,設(shè)定初值并使能它后,它會每個系統(tǒng)時鐘周期計數(shù)器減1,計數(shù)到0 時,SysTick 計數(shù)器自動重裝初值并繼續(xù)計數(shù),同時觸發(fā)中斷。

  那么每次計數(shù)器減到0,時間經(jīng)過了:系統(tǒng)時鐘周期* 計數(shù)器初值。我們使用72M 作為系統(tǒng)時鐘,那么每次計數(shù)器減1 所用的時間是1/72M,計數(shù)器的初值如果是72000,那么每次計數(shù)器減到0,時間經(jīng)過(1/72M) * 72000 =0.001,即1ms。

  現(xiàn)在我們做出來的Delay(1),就是1 毫秒延遲。Delay(1000)就是1 秒。有了以上的思路后,systick 的編程非常簡單。首先,我們需要有一個72M 的systick 系統(tǒng)時鐘,那么,使用下面這個時鐘就OK!SystemInit();

  這個函數(shù)可以讓主頻運行到72M。可以把它作為systick 的時鐘源。為了配合演示,可以使用LED 顯示來做,于是我們設(shè)置了GPIO_Config();初始化函數(shù),初始化了芯達STM32 開發(fā)板上的LED4 燈。

  接著開始配置systick,實際上配置systick 的嚴格過程如下:使用ST 的函數(shù)庫使用systick 的方法:

  1、調(diào)用SysTick_CounterCmd() -- 失能SysTick 計數(shù)器

  2、調(diào)用SysTick_ITConfig () -- 失能SysTick 中斷

  3、調(diào)用SysTick_CLKSourceConfig() -- 設(shè)置SysTick 時鐘源。

  4、調(diào)用SysTick_SetReload() -- 設(shè)置SysTick 重裝載值。

  5、調(diào)用SysTick_ITConfig () -- 使能SysTick 中斷

  6、調(diào)用SysTick_CounterCmd() -- 開啟SysTick 計數(shù)器

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關(guān)電源基礎(chǔ)知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 651單片機窗簾控制器仿真程序
  12. 1.93 MB  |  2次下載  |  免費
  13. 751單片機大棚環(huán)境控制器仿真程序
  14. 1.10 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費