本文最后修改時(shí)間:2023年03月30日
一、本節(jié)簡(jiǎn)介
本文介紹如何使用MT32F006的定時(shí)器做us、ms級(jí)的延時(shí)。
二、實(shí)驗(yàn)平臺(tái)
庫(kù)版本:V1.0.0
編譯軟件:MDK5.37
硬件平臺(tái):MT32F006開(kāi)發(fā)板(主芯片MT32F006)
仿真器:JLINK
三、版權(quán)聲明
1)作者:甜甜的大香瓜
2)聲明:喝水不忘挖井人,轉(zhuǎn)載請(qǐng)注明出處。
3)糾錯(cuò)/業(yè)務(wù)合作:897503845@qq.com
4)香瓜嵌入式之STM8/STM32群:164311667
5)本文出處:原創(chuàng)連載資料《簡(jiǎn)單粗暴學(xué)MT32F006》
6)完整開(kāi)源資料下載地址(電腦端打開(kāi)):opengua.taobao.com
四、實(shí)驗(yàn)前提
1、在進(jìn)行本文步驟前,請(qǐng)先閱讀以下章節(jié):
1)《簡(jiǎn)單粗暴學(xué)MT32F006》的“第一章和第二章”章節(jié)?。
2、在進(jìn)行本文步驟前,請(qǐng)先實(shí)現(xiàn)以下章節(jié):
暫無(wú)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-655490.html
五、基礎(chǔ)知識(shí)
暫無(wú)
六、硬件原理
暫無(wú)
七、實(shí)驗(yàn)步驟
1、編寫并添加驅(qū)動(dòng)
1)編寫驅(qū)動(dòng)GUA_Delay.c(存放在“……\Projects\MT006_StdPeriph_Templates\GUA”)
//********************************************************************** //name:???????? GUA_Delay.c //introduce:??? 延時(shí)驅(qū)動(dòng) //author:?????? 甜甜的大香瓜????? //email:??????? 897503845@qq.com?? //shop:???????? opengua.taobao.com //changetime:?? 2022.12.29 //********************************************************************** #include "mt006.h" #include "GUA_Delay.h" //********************************************************************** //name:???????? GUA_Delay_Us //introduce:??? us延遲 //parameter:??? nGUA_Us:延時(shí)微秒數(shù) //return:?????? none //author:?????? 甜甜的大香瓜 //email:??????? 897503845@qq.com //shop:???????? opengua.taobao.com //changetime:?? 2022.12.29 //********************************************************************** void GUA_Delay_Us(GUA_U32 nGUA_Us) { ????? SysTick->LOAD = nGUA_Us * 96;???? //主頻96M ????? SysTick->VAL? = (0x00); ????? SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_ENABLE_Msk; ????? //Waiting for down-count to zero ????? while((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) == 0); } //********************************************************************** //name:???????? GUA_Delay_Ms //introduce:??? Ms延遲 //parameter:??? nGUA_Ms:延時(shí)毫秒數(shù) //return:?????? none //author:?????? 甜甜的大香瓜 //email:??????? 897503845@qq.com //shop:???????? opengua.taobao.com //changetime:?? 2022.12.29 //********************************************************************** void GUA_Delay_Ms(GUA_U32 nGUA_Ms) { ????? while(nGUA_Ms--) ????? { ?????????? GUA_Delay_Us(1000); ????? } } |
2)編寫驅(qū)動(dòng)頭文件GUA_Delay.h
(存放在“……\Projects\MT006_StdPeriph_Templates\GUA”)
//********************************************************************** //name:???????? GUA_Delay.h //introduce:??? 延時(shí)驅(qū)動(dòng)的頭文件 //author:?????? 甜甜的大香瓜????? //email:??????? 897503845@qq.com?? //shop:???????? opengua.taobao.com //changetime:?? 2022.12.29 //********************************************************************** #ifndef _GUA_DELAY_H_ #define _GUA_DELAY_H_ /*********************宏定義************************/ //類型宏 #ifndef GUA_C typedef char GUA_C; #endif #ifndef GUA_U8 typedef unsigned char GUA_U8; #endif #ifndef GUA_8 typedef signed char GUA_8; #endif #ifndef GUA_U16 typedef unsigned short GUA_U16; #endif #ifndef GUA_16 typedef signed short GUA_16; #endif #ifndef GUA_U32 typedef unsigned long GUA_U32; #endif #ifndef GUA_32 typedef signed long GUA_32; #endif /*********************外部函數(shù)聲明************************/ extern void GUA_Delay_Us(GUA_U32 nGUA_Us); extern void GUA_Delay_Ms(GUA_U32 nGUA_Ms); #endif |
3)工程中添加驅(qū)動(dòng)文件
4)在MDK設(shè)置中添加驅(qū)動(dòng)源文件路徑
2、添加庫(kù)的驅(qū)動(dòng)
1)添加庫(kù)的驅(qū)動(dòng)文件(為了方便一次性都添加進(jìn)來(lái),已有則不用添加)
2)添加庫(kù)的驅(qū)動(dòng)頭文件(mt006_conf.h 中)(為了方便一次性都添加進(jìn)來(lái),已有則不用添加)
3、在應(yīng)用層中調(diào)用
1)添加驅(qū)動(dòng)頭文件(main.c中)
#include "GUA_Delay.h" |
2)添加測(cè)試代碼(main.c的main函數(shù)中)
??? //延時(shí)5s ??? GUA_Delay_Ms(5000); |
ms的函數(shù)是基于us的,只要ms準(zhǔn)了,us也是準(zhǔn)的。
八、注意事項(xiàng)
暫無(wú)
九、實(shí)驗(yàn)結(jié)果文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-655490.html
暫無(wú)
到了這里,關(guān)于【MT32F006】MT32F006之定時(shí)器延時(shí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!