通过定时器Timer方式实现时间的精准控制

目录

一、定时器的介绍

1.定时器概念及作用

2.定时器的分类

(1)硬件定时器

(2)软件定时器

(3)系统滴答定时器(SysTick)

(4)实时时钟(RTC)

二、新建cubemx项目

1.选择芯片STM32F103C8T6

2. 配置RCC

3.配置SYS

4.配置IO。LED配置PA5

5. 设置定时器TIM2

 6.配置NVIC

7.生成keil5工程文件

三、keil5工程中操作

1.在main.c中添加代码

2.编译并生成hex文件

四、电路连接

 五、烧录

六、调试结果

​编辑 

 七、心得总结

八、参考博客


一、定时器的介绍

1.定时器概念及作用


    定时器的主要作用是产生一个时基,通俗的讲就是从某一时刻开始,经过一段指定的时间,触发一个中断或超时回调事件,可以在中断或者超时回调函数中处理数据。
    定时器在嵌入式系统中是个基础服务,比如RTOS就要依赖SysTick提供时钟节拍去实现线程延时、线程时间片轮询调度等,定时器可以分软件定时器和硬件定时器,我们还经常听到SysTick,RTC实时时钟等,定时器在生活中的应用也很常见,比如闹钟。

2.定时器的分类

(1)硬件定时器


    顾名思义,芯片本身提供的定时功能。一般是由外部晶振提供给芯片输入时钟,芯片向软件模块提供一组配置寄存器,接受控制输入,到达设定时间值后芯片中断控制器产生时钟中断。硬件 定时器的精度一般很高,可以达到纳秒级别,并且是中断触发方式,简言之,硬件定时器需要硬件资源支持产生稳定的时间基准。

 

(2)软件定时器

软件定时器的功能与硬件定时器类似,但是实现方式不同,软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受数目限制的定时器服务,一般使用SysTick作为基础时钟。
    软件定时器是通过线程实现的而非中断实现,可能会被其它高优先级的线程打断,因此软件定时器只能用于对精度要求不高的场合,一般是毫秒级。

(3)系统滴答定时器(SysTick)

       SysTick需要硬件支持,可以理解为一种简单的硬件定时器,SysTick定时器一般用于延时或作为RTOS中的系统时钟(心跳),实时系统中最小的时间单位就是SysTick定时器的中断周期,也就是1个tick。

(4)实时时钟(RTC)

RTC需要硬件支持,是一个独立的BCD定时器/计数器,主要作用是提供日历功能,不同的MCU,RTC特性可能也略有差异。以下是参数特性:

二、新建cubemx项目

1.选择芯片STM32F103C8T6

2. 配置RCC

3.配置SYS

 

4.配置IO。LED配置PA5

5. 设置定时器TIM2

 

 6.配置NVIC

 

7.生成keil5工程文件

 

 再点击GENERATE CODE,生成项目

三、keil5工程中操作

1.在main.c中添加代码

2.编译并生成hex文件

四、电路连接

3v3-3v3

GND-GND

A5-二极管正极;G-二极管负极

A9-RXD;A10-TXD

 

 五、烧录

 

六、调试结果

 

 七、心得总结

       通过此次实验,对于中断以及定时器的使用的有了更深的理解和运用,另外,对于firetools的使用也更加熟练。可以用定时器来设置定时中断来方便使用,让中断重复发生,让程序可以更好的受到控制,达到我们想要的结果。其中uart中断和定时器的相互结合使用,将前面的知识串联了一遍,也让我对整个嵌入式的理解加深了不少。

八、参考博客

STM32CUBEMX_定时器控制LED闪烁 | MCU起航

HAL库中断方式进行串口通信_醉意丶千层梦的博客-CSDN博客_hal库串口接收中断

 

 

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值