【MT32F006】MT32F006之定时器延时

这篇具有很好参考价值的文章主要介绍了【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、在进行本文步骤前,请先实现以下章节:

暂无文章来源地址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)工程中添加驱动文件

【MT32F006】MT32F006之定时器延时,MT32F006,单片机【MT32F006】MT32F006之定时器延时,MT32F006,单片机

4)在MDK设置中添加驱动源文件路径

【MT32F006】MT32F006之定时器延时,MT32F006,单片机

2、添加库的驱动

1)添加库的驱动文件(为了方便一次性都添加进来,已有则不用添加)【MT32F006】MT32F006之定时器延时,MT32F006,单片机

2)添加库的驱动头文件(mt006_conf.h 中)(为了方便一次性都添加进来,已有则不用添加)

【MT32F006】MT32F006之定时器延时,MT32F006,单片机

3、在应用层中调用

1)添加驱动头文件(main.c中)

#include "GUA_Delay.h"

2)添加测试代码(main.c的main函数中)

    //延时5s

    GUA_Delay_Ms(5000);

ms的函数是基于us的,只要ms准了,us也是准的。

八、注意事项

暂无

九、实验结果

暂无

到了这里,关于【MT32F006】MT32F006之定时器延时的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于STM32F103C8T6单片机的1秒定时器设计与应用

    标题:基于STM32F103C8T6单片机的1秒定时器设计与应用 摘要: 本文主要探讨了如何在STM32F103C8T6微控制器上利用内部定时器实现精确的1秒钟定时功能,并通过实际项目实施,验证其稳定性和可靠性。首先介绍了STM32F103C8T6单片机的特性及其定时器资源,然后详细阐述了基于TIMx(

    2024年01月18日
    浏览(63)
  • (第48-59讲)STM32F4单片机,FreeRTOS【事件标志、任务通知、软件定时器、Tickless低功耗】【纯文字讲解】【】

    【吐血总结】FreeRTOS难点、Systick中断-滴答定时器、PendSV中断-任务切换、SVC中断-系统底层、时间片调度-时钟节拍【已完结】 (第1-8讲)STM32F4单片机,FreeRTOS基础知识总结【视频笔记、代码讲解】【正点原子】【原创】 (第9-10讲)STM32F4单片机,FreeRTOS任务创建和删除(动态方

    2024年02月01日
    浏览(65)
  • 51单片机定时器中断按键消抖(无延时)

    单片机入门学习记录(二) 在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理。按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片

    2024年02月14日
    浏览(61)
  • 【单片机】STM32单片机,定时器,多路PWM,TIM1、TIM2、TIM3、TIM4,STM32F103

    下图是定时器相关引脚: 在《STM32中文参考手册V10.pdf》有写: TIM1 的PWM是带互补输出的,较为高级和复杂,有兴趣可以参考其他介绍文章,这里的代码让7个引脚输出PWM。 调用: 这里没有重映射,注意不能把PA9 PA10 初始化成串口去了。 timer.c timer.h 调用: 这里没有重映射。

    2024年02月11日
    浏览(69)
  • 单片机04__基本定时器__毫秒微秒延时

            STM32F40X芯片一共包含14个定时器,这14个定时器分为3大类: 通用定时器 10个 TIM9-TIM1和TIM2-TIM5 具有基本定时器功能, 还具有输入捕获,输出比较功能 高级定时器 2个 T IM1 和T IM8    具有通用定时器和基本定时器功能, 还具有死区刹车功能。 基本定时器 2个 T IM6 和

    2024年03月20日
    浏览(43)
  • STM32使用定时器实现微秒(us)级延时

    目前开发STM32普遍使用HAL库,但 HAL 库封装的延时函数目前仅支持 ms 级别的延时,日常很多情况下会用到 us 延时,特别是一些传感器的数据读取过程,对时序要求比较严格,us 延时必不可少,因此我们今天来介绍STM32如何使用定时器实现微秒(us)级延时。 Keil 5 STM32CubeMX STM

    2024年02月12日
    浏览(59)
  • STM32不使用中断实现定时器微秒级精确延时

    我们在写代码的时候避免不了要使用延时函数,很多延时函数都是使用中断或者tick来实现的,tick的方式最大到毫秒ms级别,通过中断方式的通用定时器来实现,如果实现1us的延时那么每1us就来一次中断,很影响cpu的效率。 本文提供一种 不使用中断 ,并且很简单的方式实现的

    2024年04月11日
    浏览(49)
  • STM32系统滴答定时器SysTick实现精确ms和us延时

    时间记录:2023/12/11 一、时间的计算 STM32F103C8T6单片机为例,系统时钟为72MHz,则一个时钟周期为(1/72M)秒,即1/72us 二、寄存器介绍 (1)CTRL控制及状态寄存器 位段 名称 描述 16 COUNTFLAG 当计数到0时,该位置为1,当读取该位时,自动清零 2 CLKSOURCE 值为0时选择外部时钟源,值为

    2024年01月24日
    浏览(45)
  • GD32F103x 定时器

    STM32的定时器主要分为三种: 高级定时器、通用定时器、基本定时器 。 即:高级定时器具有捕获/比较通道和互补输出,死区时间,通用定时器只有捕获/比较通道,基本定时器没有以上两者。  1. 基本定时器 1.时钟源 时钟源来自RCC的CK_TIMER,就是内部时钟(CK_INT)直接经过控

    2024年02月07日
    浏览(44)
  • STM32F407 滴答定时器

    介绍STM32F407滴答定时器配置方法、使用方式,封装延时函数得到精确的时间。 STM32F407参考手册中第10章介绍了滴答定时器的校准值。 M4权威指南介绍滴答定时器的章节,M3权威指南中与M4权威指南中的介绍一样。 在sys.c文件中增加滴答定时器的代码 在delay.c文件增加以下代码

    2024年02月11日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包