历史上的今天
返回首页

历史上的今天

今天是:2025年01月28日(星期二)

2020年01月28日 | STM32之timer2的精准延时

2020-01-28 来源:eefocus

一、简介


本文介绍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;  

推荐阅读

史海拾趣

芯源半导体(CW)公司的发展小趣事

在电子行业的激烈竞争中,芯源半导体(CW)公司凭借其卓越的技术创新能力,成功在市场中脱颖而出。公司创始人李博士带领研发团队,针对当时市场上半导体产品的不足,开发出了一款高性能、低功耗的芯片产品。这款产品凭借其卓越的性能和稳定性,迅速获得了市场的认可,为芯源半导体(CW)公司的初期发展奠定了坚实基础。

创世(CS)公司的发展小趣事

随着产品的不断创新和技术的不断突破,创世公司的市场份额逐渐扩大。公司的SD NAND产品已经广泛应用于医疗设备、工业控制、轨道交通、安防、网络设备等多个领域。这一市场布局的成功,不仅提升了创世公司的品牌影响力,也为其在电子行业树立了良好的口碑。同时,创世公司还积极参与各种行业展会和交流活动,与国内外客户建立了广泛的合作关系,进一步拓展了市场。

FTDI [Future Technology Devices International Ltd.]公司的发展小趣事

FTDI的创立可以追溯到1992年3月13日,由弗雷德·达特(Fred Dart)领导创建。初期,公司专注于为个人电脑市场提供服务,特别是针对主板芯片组的解决方案。FTDI的首发产品就得到了IBM等知名企业的青睐,这些芯片被成功应用于AMBRA和PS/2系列个人电脑中,为当时快速发展的计算机技术贡献了重要力量。这一早期成功奠定了FTDI在电子行业中稳固的基础。

Gamewell-FCI ( Honeywell )公司的发展小趣事

2013年,FTDI推出了最新的嵌入式视频引擎(EVE)技术产品,这一创新标志着公司进入了一个新的技术领域。EVE技术将高度先进的图形控制器、显示器、音频和触摸功能集成到单一芯片中,为智能显示器在各种终端应用中的实现提供了强大支持。这一技术的推出不仅展示了FTDI在图像处理和显示领域的深厚积累,也为其后续在更多领域的拓展奠定了基础。

Digital Core Design公司的发展小趣事

然而,随着《古墓丽影》系列的不断发展,Core Design也面临了一些挑战。其中最为严重的是版权问题。由于Core Design在后续的一些作品中可能违背了“古墓”的本源,享有Lara Croft和《古墓丽影》版权的游戏发行商Eidos作出了剥夺Core Design《古墓丽影》系列开发权的决定。这一决定对Core Design来说无疑是一个巨大的打击,但也促使其开始寻找新的发展机遇。

Gravitech公司的发展小趣事

面对版权问题的挑战和市场的变化,Core Design开始寻求变革。公司的创始人Jeremy Heath-Smith和Adrian Smith在《古墓丽影:黑暗天使》发行后不久就辞去了在Eidos和Core的职务,并创立了新的工作室Circle Studio。然而,这个新工作室最终也未能逃脱被市场淘汰的命运。在2006年6月,Circle Studio被Eidos彻底抛弃,并卖给了另一家公司Rebellion。虽然Core Design的名字被保留下来,但其实际的开发团队和运营已经发生了巨大的变化。在这个过程中,Core Design不得不面对现实,寻找新的发展机遇和方向。

以上这些故事展示了Core Design在电子行业中的发展历程,包括其初创时期的艰辛、成功时期的辉煌、挑战时期的困境以及变革时期的新生。这些故事都基于事实,旨在客观地呈现Core Design的历史和发展。

问答坊 | AI 解惑

我国成功发射第二颗北斗导航卫星

4月15日0时16分,我国在西昌卫星发射中心用“长征三号丙”运载火箭,成功将第二颗北斗导航卫星送入预定轨道。新华社记者李刚摄 15日零时16分,我国在西昌卫星发射中心用“长征三号丙”运载火箭,成功将第2颗北斗导航卫星送入预定轨道。 中国卫 ...…

查看全部问答>

智能型节能灯泡

部分亮电灯泡,更加环保节能 我们家里使用的灯,基本都是全部亮的,房子的每个地方 都可以照到。不过实际上,我们需要照明的地方可能就只 有某一部分地方,那么其它地方的光似乎就有些浪费了。 现在有了这种可以部分亮电灯泡,就环保节能多了。 ...…

查看全部问答>

求助:PDA中Picturebox画点

新手求教:如题,想在PDA的Picturebox中画点,已知点的坐标,pda的Picturebox中没有paint,怎么画呢?…

查看全部问答>

cache 是用来干什么的, 他和DDR有什么区别?

cache 是用来干什么的, 他和DDR有什么区别?…

查看全部问答>

问一个初级问题,ADC校验后校验值有没有用?

                                 有用的话是用在什么地方?…

查看全部问答>

5402求助帖

各位大虾请帮忙!我用SEED-XDS510PLUS调试5402板子为什么不能与CCS连接?请出出主意应该从哪些方面考虑出现的问题呢?谢谢了~~…

查看全部问答>

开发心得

能有一个全面功能的开发板,是顺利开发产品的最佳捷径.…

查看全部问答>

TI 最新太阳能逆变板预览

附件中是TI提供的太阳能逆变板资料,里面面有电路图,也没有源代码,   由于这块板子还没上市,听说更多详细资料要等之后几个月更新controlsuite才有   电源 连接线   附带的U盘和灯,U盘里面就是附件中的资料   ...…

查看全部问答>

layout设计

何为layout设计,鄙人是菜鸟,望见怪…

查看全部问答>

读《Exploring GNU radio》笔记

Exploring GNU radio(GNU radio探密)是GNU radio创始人Eric Blossom所写的,为我们用GNU radio工具构建软件无线电系统做了简明扼要的介绍。读完之后有几点需要自己注意的地方:1、ADC的主要特性:采样率和动态范围。采样率是ADC测量模拟信号的速度 ...…

查看全部问答>