【MT32F006】MT32F006之定时器延时

本文最后修改时间: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、在进行本文步骤前,请先实现以下章节:

暂无

五、基础知识

暂无

六、硬件原理

暂无

七、实验步骤

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也是准的。

八、注意事项

暂无

九、实验结果

暂无

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值