GD32E230開發(fā)標準教程 課件 ch08SysTick_第1頁
GD32E230開發(fā)標準教程 課件 ch08SysTick_第2頁
GD32E230開發(fā)標準教程 課件 ch08SysTick_第3頁
GD32E230開發(fā)標準教程 課件 ch08SysTick_第4頁
GD32E230開發(fā)標準教程 課件 ch08SysTick_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

SysTickGD32E230開發(fā)標準教程第八章01實驗內(nèi)容基于GD32E2杏仁派開發(fā)板設(shè)計一個SysTick實驗,內(nèi)容包括:①新增SysTick模塊,該模塊應包括3個API函數(shù),分別是初始化SysTick模塊函數(shù)InitSysTick、微秒延時函數(shù)DelayNus和毫秒延時函數(shù)DelayNms;②在InitSysTick函數(shù)中,可以調(diào)用SysTickConfig函數(shù)對SysTick的中斷間隔進行調(diào)整;實驗內(nèi)容③微秒延時函數(shù)DelayNus和毫秒延時函數(shù)DelayNms至少有一個需要通過SysTickHandler中斷服務函數(shù)實現(xiàn);④在Main模塊中,調(diào)用InitSysTick函數(shù)對SysTick模塊進行初始化,調(diào)用DelayNms函數(shù)和DelayNus函數(shù)控制LED和LED,交替閃爍,驗證兩個函數(shù)是否正確。實驗內(nèi)容02實驗原理圖8-1所示是SysTick功能框圖,下面依次介紹SysTick時鐘、當前計數(shù)值寄存器和重裝載數(shù)值寄存器。實驗原理SysTick時鐘AHB時鐘或經(jīng)過8分頻的AHB時鐘作為Cortex系統(tǒng)時鐘,該時鐘同時也是SysTick的時鐘源。由于本書中所有實驗的AHB時鐘頻率均配置為72MHz,因此,SysTick時鐘頻率同樣也是72MHz,或72MHz的8分頻,即9MHz。本書中所有實驗的Cortex系統(tǒng)時鐘頻率均為72MHz,即SysTick時鐘頻率也均為72MHz。實驗原理SysTick時鐘(CKCST)作為SysTick計數(shù)器的時鐘輸入,SysTick計數(shù)器是一個24位的遞減計數(shù)器,對SysTick時鐘進行計數(shù),每次計數(shù)的時間為1/CK_CST,計數(shù)值保存于當前計數(shù)值寄存器(SysTickVAL)中。本實驗中,由于CK_CST的頻率為72MHz,因此,SysTick計數(shù)器每次計數(shù)時間為1/72μs。當SysTickVAL計數(shù)至0時,SysTickCTRL的COUNTFLAG被置1,如果SysTick_CTRL的TICKINT為1,則產(chǎn)生SysTick異常請求;相反,如果SysTick_CTRL的TICKINT為0,則不產(chǎn)生SysTick異常請求。當前計數(shù)值寄存器實驗原理重裝載數(shù)值寄存器SysTick計數(shù)器對CK_CST時鐘進行遞減計數(shù),由重裝載值SysTickLOAD開始計數(shù),當SysTick計數(shù)器計數(shù)到0時,由硬件自動將SysTickLOAD中的值加載到SysTickVAL中,重新啟動遞減計數(shù)。本實驗的SysTick

LOAD為72000000/1000,因此,產(chǎn)生SysTick異常請求間隔為(1/72)μs×(72000000/1000)=1000μs,即1ms產(chǎn)生一次SysTick異常請求。實驗原理圖8-2所示是SysTick模塊初始化與中斷服務函數(shù)流程圖。實驗原理圖8-3是DelayNms函數(shù)流程圖。實驗原理圖8-4是DelayNus函數(shù)流程圖。實驗原理SysTick_CTRL的結(jié)構(gòu)、偏移地址和復位值如圖8-5所示。實驗原理SysTick_LOAD的結(jié)構(gòu)、偏移地址和復位值如圖8-6所示。實驗原理SysTick_VAL的結(jié)構(gòu)、偏移地址和復位值如圖8-7所示。實驗原理SysTick_CALIB的結(jié)構(gòu)、偏移地址和復位值如圖8-8所示。實驗原理本實驗涉及的SysTick固件庫函數(shù)只有SysTickConfig,用于設(shè)置SysTick并使能中斷。該函數(shù)在core_cm23.h文件中以內(nèi)聯(lián)函數(shù)形式聲明和實現(xiàn)。SysTickConfig函數(shù)的功能是設(shè)置SysTick并使能中斷,通過寫SysTickLOAD設(shè)置自動重裝載計數(shù)值和SysTick中斷的優(yōu)先級,將SysTick_VAL的值設(shè)置為0,向SysTickCTRL寫入?yún)?shù)啟動計數(shù),并打開SysTick中斷,SysTick時鐘默認使用系統(tǒng)時鐘。實驗原理SysTick實驗的程序架構(gòu)如圖8-9所示。實驗原理03實驗步驟與代碼解析步驟1:復制并編譯原始工程;步驟2:添加SysTick文件對;步驟3:完善SysTick.h文件;實驗步驟與代碼解析步驟4:完善SysTick.c文件;步驟5:完善SysTick實驗應用層;步驟6:編譯及下載驗證。實驗步驟與代碼解析04本章任務基于GD32E2杏仁派開發(fā)板,通過修改SysTick模塊的InitSysTick函數(shù),將系統(tǒng)節(jié)拍時鐘SysTick配置為每0.25ms中斷一次,此時,SysTick模塊中的DelayNms函數(shù)將不再以1ms為最小延時單位,而是以0.25ms為最小延時單位。嘗試修改DelayNms函數(shù),使得該函數(shù)在SysTick為每0.25ms中斷一次的情況下,依然以1ms為最小延時單位,即DelayNms(1)代表1ms延時,DelayNms(5)代表5ms延時,并在Main模塊中調(diào)用DelayNms函數(shù)控制LED1和LED2每500ms交替閃爍一次,驗證DelayNms函數(shù)是否修改正確。本章任務任務提示:(1)通過設(shè)置SysT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論