<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32筆記之十二:時(shí)鐘不息工作不止,systic時(shí)鐘應用

STM32筆記之十二:時(shí)鐘不息工作不止,systic時(shí)鐘應用

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò ) 收藏
a)目的:使用系統時(shí)鐘來(lái)進(jìn)行兩項實(shí)驗——周期執行代碼與精確定時(shí)延遲。

b)初始化函數定義:

本文引用地址:http://dyxdggzs.com/article/201611/322070.htm

void SysTick_Configuration(void);

c)初始化函數調用:

SysTick_Configuration();

d)初始化函數:

void SysTick_Configuration(void)

{

SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//時(shí)鐘除8

SysTick_SetReload(250000);//計數周期長(cháng)度

SysTick_CounterCmd(SysTick_Counter_Enable);//啟動(dòng)計時(shí)器

SysTick_ITConfig(ENABLE);//打開(kāi)中斷

}

e)在NVIC的初始化函數里面增加以下代碼打開(kāi)相關(guān)中斷:

NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 1, 0);//中斷等級設置,一般設置的高一些會(huì )少受其他影響

f)在stm32f10x_it.c文件中找到void SysTickHandler函數

void SysTickHandler(void)

{

執行代碼

}

g)簡(jiǎn)單應用:精確延遲函數,因為systic中斷往往被用來(lái)執行周期循環(huán)代碼,所以一些例程中使用其中斷的啟動(dòng)和禁止來(lái)編寫(xiě)的精確延時(shí)函數實(shí)際上不實(shí)用,我自己編寫(xiě)了精確計時(shí)函數反而代碼更精簡(jiǎn),思路更簡(jiǎn)單。思路是調用后,變量清零,然后使用時(shí)鐘來(lái)的曾變量,不斷比較變量與延遲的數值,相等則退出函數。代碼和步驟如下:

i.定義通用變量:u16 Tic_Val=0; //變量用于精確計時(shí)

ii.在stm32f10x_it.c文件中相應定義:

extern u16 Tic_Val;//在本文件引用MAIN.c定義的精確計時(shí)變量

iii.定義函數名稱(chēng):void Tic_Delay(u16 Tic_Count);//精確延遲函數

iv.精確延時(shí)函數:

void Tic_Delay(u16 Tic_Count)//精確延時(shí)函數

{Tic_Val=0;//變量清零

while(Tic_Val != Tic_Count){printf("");}//計時(shí)

}

v.在stm32f10x_it.c文件中void SysTickHandler函數里面添加

Tic_Val++;//變量遞增

vi.調用代碼:Tic_Delay(10);//精確延時(shí)

vii.疑問(wèn):如果去掉計時(shí)行那個(gè)沒(méi)用的printf("");函數將停止工作,這個(gè)現象很奇怪


關(guān)鍵詞: STM32筆systic時(shí)鐘應

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>