一、简介
本文介绍STM32系列如何使用timer2进行精确定时。
二、实验平台
库版本:STM32F10x_StdPeriph_Lib_V3.5.0
编译软件:MDK4.53
硬件平台:STM32开发板(主芯片stm32f103c8t6)
仿真器:JLINK
三、版权声明
四、实验前提
1、在进行本文步骤前,请先阅读以下博文:
暂无
2、在进行本文步骤前,请先实现以下博文:
暂无
五、基础知识
暂无
六、实验步骤
1、编写并添加定时器2驱动
1)编写驱动GUA_Timer2.c(存放在“……HARDWARE”)
//******************************************************************************
//name: GUA_Timer2.c
//introduce: 定时器2驱动
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜单片机之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
#include "stm32f10x.h"
#include "GUA_Timer2.h"
/*********************宏定义************************/
//时钟宏
#define GUA_TIMER2_PERIPH_CLOCK RCC_APB1Periph_TIM2
/*********************内部变量************************/
static GUA_U64 sGUA_Timer2_TimingDelay_1 = 0;
static GUA_U64 sGUA_Timer2_TimingDelay_2 = 0;
//******************************************************************************
//name: GUA_Timer2_TimingDelay_Decrement
//introduce: 定时器2数值减1的处理操作
//parameter: none
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜单片机之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_TimingDelay_Decrement(void)
{
//变量1做递减
if(sGUA_Timer2_TimingDelay_1 != 0x00)
{
sGUA_Timer2_TimingDelay_1--;
}
//变量2做递减
if(sGUA_Timer2_TimingDelay_2 != 0x00)
{
sGUA_Timer2_TimingDelay_2--;
}
}
//******************************************************************************
//name: GUA_Timer2_StartDelayMs_1
//introduce: 启动延时
//parameter: nGUA_Timer2_Time:需要延时的ms数
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜单片机之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_StartDelayMs_1(GUA_U64 nGUA_Timer2_Time)
{
sGUA_Timer2_TimingDelay_1 = nGUA_Timer2_Time;
}
//******************************************************************************
//name: GUA_Timer2_CheckDelayMs_1
//introduce: 检查延时
//parameter: none
//return: 剩余的延时ms数
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜单片机之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
GUA_U64 GUA_Timer2_CheckDelayMs_1(void)
{
return sGUA_Timer2_TimingDelay_1;
}
//******************************************************************************
//name: GUA_Timer2_StartDelayMs_2
//introduce: 启动延时
//parameter: nGUA_Timer2_Time:需要延时的ms数
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜单片机之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_StartDelayMs_2(GUA_U64 nGUA_Timer2_Time)
{
sGUA_Timer2_TimingDelay_2 = nGUA_Timer2_Time;
}
//******************************************************************************
//name: GUA_Timer2_CheckDelayMs_2
//introduce: 检查延时
//parameter: none
//return: 剩余的延时ms数
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜单片机之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
GUA_U64 GUA_Timer2_CheckDelayMs_2(void)
{
return sGUA_Timer2_TimingDelay_2;
}
//******************************************************************************
//name: GUA_Timer2_Init
//introduce: 定时器2初始化
//parameter: none
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜单片机之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
设计资源 培训 开发板 精华推荐
- EVAL-AD5683RSDZ,AD5683数模转换器评估板
- EVAL-ADM1068LQEB,评估 ADM1068AST 电压监控器排序器的评估板
- AM1G-1215SH30Z 15V 1 瓦 DC-DC 转换器的典型应用
- MPC5748G安全网关开发板
- L78L09AC正压稳压器Edit boost电路的典型应用
- MCIMX53-START-R、i.MX53基于i.MX53 Cortex-A8处理器的高性价比、多用途平台开发板
- LDK120C12R 1.2V低压降稳压器典型应用固定电路
- 车载的功放前级
- AM2G-1215DH30Z ±15V 2 瓦 DC-DC 转换器的典型应用,用于开/关控制应用
- Virgo40x & Field 田40