目录

一、定时器的介绍

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库串口接收中断

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

  1. 【嵌入式系统开发15】STM32F103C8T6下通过定时器Timer方式实现时间的精准控制,实现串口通信并让LED等周期性地闪烁

    本文目的是主要介绍通过STM32F103C8T6采用定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到了以后,处理定时相关的任务.请设置一个5秒的 ...

  2. 定时器Timer方式实现时间的精准控制

    什么是定时器 就是用来定时的机器,是存在于STM32单片机中的一个外设.STM32总共有8个定时器,分别是2个高级定时器(TIM1.TIM8),4个通用定时器(TIM2.TIM3.TIM4.TIM5) ...

  3. 用定时器Timer方式实现时间的精准控制

    目录 一.定时器简介 1.STM32定时器的定义 2.STM32定时器的分类 二.创建工程项目 三.编写代码 1.在main.c写入以下函数 2.编译运行 四.烧录 1.电路连接 2.效果 五.总结 ...

  4. 用定时器Timer方式实现LED周期性闪烁

    文章目录 一.环境配置 二.定时器简介 三.用STM32CubeMX配置工程 四.用Keil配置代码 五.运行效果 六.总结 七,参考资料 一.环境配置 软件:STM32CubeMX:6.6.1 Ke ...

  5. STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数

    STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数 一.步进电机闭环驱动器 二.CubeMx配置 1.Clock Configuration 2.脉冲端 定时器配置 3. ...

  6. 定时器Timer实现时间精准控制

    Timer方式实现时间的精准控制,当定时时间到了以后,处理定时相关的任务 一.配置环境 1.步骤如下 (1)新建工程,进行基本配置 (2)配置IO (3)配置定时器 (4)配置中断 (5)时钟配置 ( ...

  7. 通过定时器的Timer方式替代delay/Hal_delay函数进行定时

    文章目录 前言 一.设置一个5秒的定时器,每隔5秒从串口发送"hello windows!" 1.创建工程项目 2.项目配置 3.代码编写 1.重定向printf函数 2.定时器代 ...

  8. Linux内核深入理解定时器和时间管理(4):定时器 timer

    Linux内核深入理解定时器和时间管理 定时器 timer rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 1. Timers This is fourth part ...

  9. linux定时器回调处理过程,Linux内核系统定时器TIMER实现过程分析

    可见涉及到系统定时器的数据结构并不多,那么:对于一个linux系统中,定时器个数可能会很多,而且每个定时器的超时事件时间并不相同,所以如何管理和处理定时器超时事件,关系到内核性能的高低.它根据不同的定 ...

最新文章

  1. Python入门:常用模块—logging模块
  2. 玩转mini2440开发板之【编译烧录rootfs根文件系统全过程记录】
  3. Mybatis的动态sql语句的查询
  4. 年轻人,看看 Redisson 分布式锁—可重入锁吧!太重要了
  5. 阿里每天纳税超 1.4 亿元;余承东:苹果很难和华为竞争;三星 Note 7 爆炸案终审 | 极客头条...
  6. String.format(%03d, i)在数字前面补零
  7. 三菱PLC与上位机通讯协议讲解
  8. 读大前研一《思考的技术》-锻炼解决问题的思维
  9. exercise006_字符串的全排列
  10. 产品经理干久了,有哪些后遗症?
  11. 红孩儿编辑器的渲染子系统的渲染模块的函数依赖关系图
  12. cortex m3 开源_开源增强现实耳机,Steam的125M有效帐户等
  13. tomcat 中部署的应用响应json数据乱码解决办法
  14. 向日葵(SunLoginClient_10.5.0.29)RCE验证
  15. Web性能压力测试工具-Webbench
  16. 图解Linux命令之--modprobe命令
  17. C语言笔记-26-网络-UDP网络编程
  18. V3S-Zero TF卡无法引导Linux启动问题
  19. 来自一位双非本科跌跌撞撞的秋招指南(秋招攻略/经验分享/干货)
  20. 测试员就是“背锅侠”?学会这些,扔掉测试人常背的3口“锅”

热门文章

  1. mysql设置主从数据库的同步
  2. pythonchallenge闯关游戏_Python Challenge游戏攻略(一)
  3. the python challenge_The Python Challenge 解密之旅
  4. Python之音频信号处理(一)音频基础知识
  5. 20210506-AcWing1129. 热浪
  6. 2022-09-15 Windows11 C盘下面看不到AppData
  7. 【2.3.3被拒】苹果iOS上架没有真机提供ps制作屏幕截图
  8. C语言 数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理
  9. 八电平怎么画_北京的画室怎么选,一定要看以下这四点再选画室也不晚
  10. c语言简单的代码优化