【MT32F006】MT32F006之Stimer延时(轮询)

本文最后修改时间:2026年09月10日

一、本节简介

本文介绍如何使用MT32F006的Stimer延时1秒,是轮询方式,而不是死等占用mcu的方式。

二、实验平台

库版本:V1.0.0

编译软件:MDK5.37

硬件平台:MT32F006开发板(主芯片MT32F006)

仿真器:JLINK

三、版权声明

1)作者:甜甜的大香瓜

2)声明:喝水不忘挖井人,转载请注明出处。

3)本文出处:原创连载资料《简单粗暴学MT32F006》

四、实验前提

1、在进行本文步骤前,请先阅读以下章节:

1)《简单粗暴学MT32F006》的"第一章和第二章"章节。

2、在进行本文步骤前,请先实现以下章节:

暂无

五、基础知识

暂无

六、硬件原理

暂无

七、实验步骤

1 、编写并添加驱动

1 )编写驱动GUA_Clk.c(存放在"......\Projects\MT006_StdPeriph_Templates\GUA")

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| //********************************************************************** //name: GUA_Clk.c //introduce: Clk驱动 //author: 甜甜的大香瓜 //email: 897503845@qq.com //QQ group: 香瓜单片机之STM8/STM32(164311667) //shop: opengua.taobao.com //changetime: 2024.12.6 //********************************************************************** #include <stdio.h> #include "mt006.h" #include "mt006_stimer.h" #include "GUA_Clk.h" //********************************************************************** //name: GUA_Clk_GetMs //introduce: 获取当前时间 //parameter: none //return: none //author: 甜甜的大香瓜 //email: 897503845@qq.com //QQ group: 香瓜单片机之STM8/STM32(164311667) //shop: opengua.taobao.com //changetime: 2024.12.6 //********************************************************************** uint16_t GUA_Clk_GetMs(void) { uint32_t nGUA_Clk_Count = 0; //实际经过的计数时间=总数-当前寄存器数值 nGUA_Clk_Count = 0xffffffff - STIMER_GetCurrentValue(STimer_Channel_0); //n*0.00265us/1000 return (uint16_t)(nGUA_Clk_Count/377); } //********************************************************************** //name: GUA_Clk_Reset //introduce: 系统时钟的复位 //parameter: none //return: none //author: 甜甜的大香瓜 //email: 897503845@qq.com //QQ group: 香瓜单片机之STM8/STM32(164311667) //shop: opengua.taobao.com //changetime: 2024.12.6 //********************************************************************** void GUA_Clk_Reset(void) { STIMER_InitTypeDef STIMER_InitStructure; //复位 STIMER_DeInit(); //重新配置 STIMER_InitStructure.STIMER_Channel = STimer_Channel_0; STIMER_InitStructure.STIMER_Count = 0xffffffff; STIMER_Init(&STIMER_InitStructure); //使能 STIMER_Cmd(STimer_Channel_0, ENABLE); } //********************************************************************** //name: GUA_Clk_Init //introduce: Clk初始化 //parameter: none //return: none //author: 甜甜的大香瓜 //email: 897503845@qq.com //QQ group: 香瓜单片机之STM8/STM32(164311667) //shop: opengua.taobao.com //changetime: 2024.12.6 //********************************************************************** void GUA_Clk_Init(void) { //uint32_t temp_tiemr_count=0; STIMER_InitTypeDef STIMER_InitStructure; //Simple Timer 时钟源为outclock(必须是SYSPLL 96M),分频255,时钟为377k(2.65us);实际寄存器为OUTCLKSEL、OUTCLKDIV RCC_OUTCLKSel(RCC_OUTCLK_SOURCE_SYSPLL); RCC_SETCLKDivider(RCC_CLOCKFREQ_CLKOUTCLK, 255); //启用简单定时器外设的AHB总线时钟;AHBCLKL RCC_APBPeriphClockCmd(RCC_AHBCLKCTRL_STIMER, ENABLE); //复位STIMER STIMER_DeInit(); //将通道配置为 STimer_Channel_0 ,可用于一般目的计数。 STIMER_InitStructure.STIMER_Channel = STimer_Channel_0; STIMER_InitStructure.STIMER_Count = 0xffffffff; STIMER_Init(&STIMER_InitStructure); //STIMER_ITConfig(STimer_Channel_0, ENABLE); //使能 STIMER_Cmd(STimer_Channel_0, ENABLE); } |

2 )编写驱动GUA_Clk.h(存放在"......\Projects\MT006_StdPeriph_Templates\GUA")

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| //********************************************************************** //name: GUA_Clk.h //introduce: Clk驱动的头文件 //author: 甜甜的大香瓜 //email: 897503845@qq.com //QQ group: 香瓜单片机之STM8/STM32(164311667) //shop: opengua.taobao.com //changetime: 2024.12.6 //********************************************************************** #ifndef GUA_CLK_H #define GUA_CLK_H /*********************头文件************************/ #include <stdint.h> /*********************外部函数声明************************/ extern uint16_t GUA_Clk_GetMs(void); extern void GUA_Clk_Reset(void); extern void GUA_Clk_Init(void); #endif |

3 )工程中添加驱动文件

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

2 、添加库的驱动

1)添加库的驱动文件(为了方便一次性都添加进来,已有则不用添加)

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

3 、在应用层中调用

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

|----------------------|
| #include "GUA_Clk.h" |

2 )添加驱动初始化代码(main.c的main函数中)

|--------------------------------------|
| //用Stimer产生系统时钟,方便定时 GUA_Clk_Init(); |

3 )增加测试代码(main.c的main函数中)

|------------------------------------------------------------------------------|
| //每秒处理一次 if(GUA_Clk_GetMs() >= 1000) { //系统时钟复位 GUA_Clk_Reset(); //下面添加处理 } |

八、注意事项

暂无

九、实验结果

暂无

相关推荐
ScilogyHunter12 分钟前
Hercules系列安全MCU功能安全原理详解
java·单片机·安全·hercules
szxinmai主板定制专家30 分钟前
AMR 项目落地:机器人控制器硬件定制化需求复盘
arm开发·单片机·fpga开发·系统架构·机器人·am62x
笨笨饿30 分钟前
#60_# 一、Photoshop 2025 如何批量导出 PSD 文件中的所有图层为独立 PNG 图片
stm32·单片机·嵌入式硬件·物联网·ui·51单片机·photoshop
碧海银沙音频科技研究院10 小时前
基于炬芯ATS308X 设计的上位机usb 串口音乐EQ调节工具
stm32·单片机·嵌入式硬件
三佛科技-1341638421213 小时前
过认证72W碳化硅方案(12V6A)主控HN1562+HN36228V 典型应用电路、变压器参数分享
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
Zwawa14 小时前
串口为什么会丢字节:从轮询到中断和环形缓冲区
c语言·单片机·嵌入式
Brilliantwxx14 小时前
【STM32】 内部 Flash 详解:寄存器逐位拆解 + 工作流程顺序全讲 + EEPROM再实现
stm32·单片机·嵌入式硬件·1024程序员节
木子单片机15 小时前
基于单片机的DS18B20温度传感器测温系统设计
单片机·嵌入式硬件·51单片机·keil
华清远见IT开放实验室15 小时前
实验室建设案例 | 安徽三联学院物联网实验室
stm32·单片机·嵌入式硬件·物联网·华清远见
深圳光特通信豆子17 小时前
TTL 光模块在工业控制与串口通信中的应用指南(10M BIDI 单模系列)
单片机·嵌入式硬件