19.4实操-定时器的延时应用_第1页
19.4实操-定时器的延时应用_第2页
19.4实操-定时器的延时应用_第3页
19.4实操-定时器的延时应用_第4页
19.4实操-定时器的延时应用_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实操:定时器的延时应用1STM32程序设计案例教程电子工业出版社欧启标任务目标使用定时器TIM3进行延时,使得LED0按1s的时间间隔翻转其状态。【分析】为了获得1S的定时,可以每次让定时器计时10ms,然后通过循环的方式调用定时器100次获得1S的定时时间。要想让定时器一次计时10ms,可以采用如下的步骤来达到:1.定时器时钟源的选择:使用APB倍频器的输出信号作为TIM3的时钟源,可得TIM3的预分频器的输入时钟为84MHz;2.预分频器的值:设置PSC的值为83,可得TIM3的计数器频率为1MHz;3.选择计数器的计数模式:设置计数器的计数方式为向下计数方式;4.计数器的初值设定。由于计数器的输入信号频率为1MHz,所以计数器输入脉冲的周期为1us,采用查询方式结束计数,设置计数器的初值为10000;5.计数结束的方式。通过查询计数器的当前值来关闭定时器以结束一次定时,具体为一直查询计数器的当前值,计数器的当前值为0时说明10ms时间已经到了,然后结束一次定时。【实现过程】1.选择目标芯片。2.配置引脚工作模式:将与LED0相连的PF9配置为输出。3.配置相关外设:(1)设置系统时钟源和时钟树;(2)设置使用的定时器(TIM3)的定时参数:①设置TIM3的时钟源为内部时钟;②设置TIM3的分频器的值为83;③计数器的初值手动装入,这里将计数周期ARR的值设置为非0值即可(设置为0计数器不工作);④由表9-1可知,TIM3有3种计数方式,这里采用向下方式计数,计数器计数到0时溢出。定时器TIM3的整个设置过程如图9-8所示。图9-8定时器TIM3配置示意图4.对工程进行配置:只输出必须的模块代码,每个模块使用模块化进行组织。最后将工程名取名为9-1TIM3_Delay,然后生成工程。5.打开生成的工程并添加用户代码,具体有①将主函数的while循环的内容改为如图9-9所示的形式。图9-9while循环内容示意图由前面介绍可知,这段函数代码作用是使得与PF9相连的LED0的状态每隔1000ms反转一次(调用函数Delay_ms()一次延时10ms)。②设计函数Delay_ms,具体如下

voidDelay_ms(uint32_tms)

{

uint32_ti=0;

for(i=0;i<ms;i++)

Delay_us(10000);//10ms

}由Delay_ms函数的设计可知,Delay_ms函数通过调用ms次Delay_us(1000)函数来达到延时效果。Delay_us函数的设计思路如下voidDelay_us(uint32_tus){

获取计数器的初值(us&0xffff);//对计数器的值做出限制,使之不超过0xffff;

设置定时器3的计数器的初值;

开启定时器3;

while(计数值>0)

{

读取定时器3的计数器进行判断,直至计数值为0然后退出循环,一次计数结束;

}

关闭定时器3;//计数到0,一次计数结束,关闭定时器}其中,●开启定时器采用轮询方式启动,轮询方式启动的函数为HAL_TIM_Base_Start;●设置计数器的值使用宏__HAL_TIM_SetCounter来实现;●读取计数器的值使用宏__HAL_TIM_GetCounter来实现;●轮询方式启动相匹配的停止函数为HAL_TIM_Base_Stop。Delay_us的具体实现如图9-10所示。Delay_us的具体实现如图9-10所示。图9-10微秒级延时函数Delay_us示意图③最后,要记得声明函数Delay_ms和Delay_us,具体如图9-11所示。【任务结果】

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论