通过定时器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库串口接收中断
通过定时器Timer方式实现时间的精准控制相关推荐
- 【嵌入式系统开发15】STM32F103C8T6下通过定时器Timer方式实现时间的精准控制,实现串口通信并让LED等周期性地闪烁
本文目的是主要介绍通过STM32F103C8T6采用定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到了以后,处理定时相关的任务.请设置一个5秒的 ...
- 定时器Timer方式实现时间的精准控制
什么是定时器 就是用来定时的机器,是存在于STM32单片机中的一个外设.STM32总共有8个定时器,分别是2个高级定时器(TIM1.TIM8),4个通用定时器(TIM2.TIM3.TIM4.TIM5) ...
- 用定时器Timer方式实现时间的精准控制
目录 一.定时器简介 1.STM32定时器的定义 2.STM32定时器的分类 二.创建工程项目 三.编写代码 1.在main.c写入以下函数 2.编译运行 四.烧录 1.电路连接 2.效果 五.总结 ...
- 用定时器Timer方式实现LED周期性闪烁
文章目录 一.环境配置 二.定时器简介 三.用STM32CubeMX配置工程 四.用Keil配置代码 五.运行效果 六.总结 七,参考资料 一.环境配置 软件:STM32CubeMX:6.6.1 Ke ...
- STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数
STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数 一.步进电机闭环驱动器 二.CubeMx配置 1.Clock Configuration 2.脉冲端 定时器配置 3. ...
- 定时器Timer实现时间精准控制
Timer方式实现时间的精准控制,当定时时间到了以后,处理定时相关的任务 一.配置环境 1.步骤如下 (1)新建工程,进行基本配置 (2)配置IO (3)配置定时器 (4)配置中断 (5)时钟配置 ( ...
- 通过定时器的Timer方式替代delay/Hal_delay函数进行定时
文章目录 前言 一.设置一个5秒的定时器,每隔5秒从串口发送"hello windows!" 1.创建工程项目 2.项目配置 3.代码编写 1.重定向printf函数 2.定时器代 ...
- Linux内核深入理解定时器和时间管理(4):定时器 timer
Linux内核深入理解定时器和时间管理 定时器 timer rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 1. Timers This is fourth part ...
- linux定时器回调处理过程,Linux内核系统定时器TIMER实现过程分析
可见涉及到系统定时器的数据结构并不多,那么:对于一个linux系统中,定时器个数可能会很多,而且每个定时器的超时事件时间并不相同,所以如何管理和处理定时器超时事件,关系到内核性能的高低.它根据不同的定 ...
最新文章
- Python入门:常用模块—logging模块
- 玩转mini2440开发板之【编译烧录rootfs根文件系统全过程记录】
- Mybatis的动态sql语句的查询
- 年轻人,看看 Redisson 分布式锁—可重入锁吧!太重要了
- 阿里每天纳税超 1.4 亿元;余承东:苹果很难和华为竞争;三星 Note 7 爆炸案终审 | 极客头条...
- String.format(%03d, i)在数字前面补零
- 三菱PLC与上位机通讯协议讲解
- 读大前研一《思考的技术》-锻炼解决问题的思维
- exercise006_字符串的全排列
- 产品经理干久了,有哪些后遗症?
- 红孩儿编辑器的渲染子系统的渲染模块的函数依赖关系图
- cortex m3 开源_开源增强现实耳机,Steam的125M有效帐户等
- tomcat 中部署的应用响应json数据乱码解决办法
- 向日葵(SunLoginClient_10.5.0.29)RCE验证
- Web性能压力测试工具-Webbench
- 图解Linux命令之--modprobe命令
- C语言笔记-26-网络-UDP网络编程
- V3S-Zero TF卡无法引导Linux启动问题
- 来自一位双非本科跌跌撞撞的秋招指南(秋招攻略/经验分享/干货)
- 测试员就是“背锅侠”?学会这些,扔掉测试人常背的3口“锅”
热门文章
- mysql设置主从数据库的同步
- pythonchallenge闯关游戏_Python Challenge游戏攻略(一)
- the python challenge_The Python Challenge 解密之旅
- Python之音频信号处理(一)音频基础知识
- 20210506-AcWing1129. 热浪
- 2022-09-15 Windows11 C盘下面看不到AppData
- 【2.3.3被拒】苹果iOS上架没有真机提供ps制作屏幕截图
- C语言 数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理
- 八电平怎么画_北京的画室怎么选,一定要看以下这四点再选画室也不晚
- c语言简单的代码优化