本文最后修改时间:2023年03月30日
一、本节简介
本文介绍如何使用MT32F006的定时器做us、ms级的延时。
二、实验平台
库版本:V1.0.0
编译软件:MDK5.37
硬件平台:MT32F006开发板(主芯片MT32F006)
仿真器:JLINK
三、版权声明
1)作者:甜甜的大香瓜
2)声明:喝水不忘挖井人,转载请注明出处。
3)纠错/业务合作:897503845@qq.com
4)香瓜嵌入式之STM8/STM32群:164311667
5)本文出处:原创连载资料《简单粗暴学MT32F006》
6)完整开源资料下载地址(电脑端打开):opengua.taobao.com
四、实验前提
1、在进行本文步骤前,请先阅读以下章节:
1)《简单粗暴学MT32F006》的“第一章和第二章”章节。
2、在进行本文步骤前,请先实现以下章节:
暂无文章来源地址https://www.toymoban.com/news/detail-655490.html
五、基础知识
暂无
六、硬件原理
暂无
七、实验步骤
1、编写并添加驱动
1)编写驱动GUA_Delay.c(存放在“……\Projects\MT006_StdPeriph_Templates\GUA”)
//********************************************************************** //name: GUA_Delay.c //introduce: 延时驱动 //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:延时微秒数 //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:延时毫秒数 //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)编写驱动头文件GUA_Delay.h
(存放在“……\Projects\MT006_StdPeriph_Templates\GUA”)
//********************************************************************** //name: GUA_Delay.h //introduce: 延时驱动的头文件 //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 /*********************外部函数声明************************/ extern void GUA_Delay_Us(GUA_U32 nGUA_Us); extern void GUA_Delay_Ms(GUA_U32 nGUA_Ms); #endif |
3)工程中添加驱动文件
4)在MDK设置中添加驱动源文件路径
2、添加库的驱动
1)添加库的驱动文件(为了方便一次性都添加进来,已有则不用添加)
2)添加库的驱动头文件(mt006_conf.h 中)(为了方便一次性都添加进来,已有则不用添加)
3、在应用层中调用
1)添加驱动头文件(main.c中)
#include "GUA_Delay.h" |
2)添加测试代码(main.c的main函数中)
//延时5s GUA_Delay_Ms(5000); |
ms的函数是基于us的,只要ms准了,us也是准的。
八、注意事项
暂无
九、实验结果文章来源:https://www.toymoban.com/news/detail-655490.html
暂无
到了这里,关于【MT32F006】MT32F006之定时器延时的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!