用定时器Timer方式实现时间的精准控制
目录
一、定时器简介
1.STM32定时器的定义
2.STM32定时器的分类
二、创建工程项目
三、编写代码
1.在main.c写入以下函数
2.编译运行
四、烧录
1.电路连接
2.效果
五、总结
六、参考文献
一、定时器简介
1.STM32定时器的定义
定时器顾名思义就是可以用来定时的,我们可以设置想要的定时时间,然后去做很多事情。STM32的定时器功能很强大,可以用来定时、计数、PWM产生、输入捕获以及定时器中断等。
2.STM32定时器的分类
总的来说就是用来定时的机器,是存在于STM32单片机中的一个外设。STM32总共有8个定时器,分别是2个高级定时器(TIM1、TIM8),4个通用定时器(TIM2、TIM3、TIM4、TIM5)和2个基本定时器(TIM5、TIM6)。
这三种定时器的区别如下:
注:高级定时器具有捕获/比较通道和互补输出,通用定时器只有捕获/比较通道,基本定时器没有以上两者。
二、创建工程项目
选择芯片STM32F103C8T6:
配置RCC:
配置SYS:
配置GPIO。将PA6配置为GPIO_Output:
配置定时器TIM2:
配置USART:
配置NVIC:
项目设置:
打开项目:
三、编写代码
1.在main.c写入以下函数
HAL_TIM_Base_Start_IT(&htim2);//启动定时器2
//定时器回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{static uint32_t time_cnt =0;static uint32_t time_cnt1 =0;if(htim->Instance == TIM2){if(++time_cnt >= 20){time_cnt =0;HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_6);}if(++time_cnt1 >= 50){time_cnt1 =0;HAL_UART_Transmit(&huart1, (uint8_t *)&ljr, sizeof(ljr),0xFFFF);}}
}
2.编译运行
四、烧录
1.电路连接
3v3-3v3
GND-GND
PA5-二极管正极
GND-二极管负极
PA9-RXD
PA10-TXD
2.效果
五、总结
通过本次实验,对于中断和定时器的使用有了更深的理解和运用。可以用定时器来设置定时中断以达到更精确的控制,让中断重复发生,让程序可以更好的受到控制,实现我们想要的效果。
六、参考文献
STM32-定时器详解_KevinFlyn的博客-CSDN博客_stm32定时器
STM32CUBEMX_定时器控制LED闪烁 | MCU起航
用定时器Timer方式实现时间的精准控制相关推荐
- 【嵌入式系统开发15】STM32F103C8T6下通过定时器Timer方式实现时间的精准控制,实现串口通信并让LED等周期性地闪烁
本文目的是主要介绍通过STM32F103C8T6采用定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到了以后,处理定时相关的任务.请设置一个5秒的 ...
- 通过定时器Timer方式实现时间的精准控制
目录 一.定时器的介绍 1.定时器概念及作用 2.定时器的分类 (1)硬件定时器 (2)软件定时器 (3)系统滴答定时器(SysTick) (4)实时时钟(RTC) 二.新建cubemx项目 1.选择 ...
- 定时器Timer方式实现时间的精准控制
什么是定时器 就是用来定时的机器,是存在于STM32单片机中的一个外设.STM32总共有8个定时器,分别是2个高级定时器(TIM1.TIM8),4个通用定时器(TIM2.TIM3.TIM4.TIM5) ...
- 用定时器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系统中,定时器个数可能会很多,而且每个定时器的超时事件时间并不相同,所以如何管理和处理定时器超时事件,关系到内核性能的高低.它根据不同的定 ...
最新文章
- NeurIPS 2020论文评审结果出炉,提前拒稿、作者审稿惹争议,网友:改投别家吧...
- 3D视觉应用开发--机器人3D互动四大技术难点分析
- java中打开文件显示_从java程序中打开任何文件
- 3.软件开发的本质和基本手段
- oracle 快速上手,Oracle学习笔记:快速上手
- 关于汉诺塔,C++代码,代码效果演算
- SAP Spartacus lock directive锁住元素所有子元素及设置FOCUS_GROUP_ATTR的行为
- maven项目多模块部署的时候构建顺序
- ideahtml调用jquery函数失败_[WEB篇]-JQuery-06-Jquery实现异步调用
- How Do I? Videos for Devices
- LTE中SRB---无线资源承载
- 错误1406.无法将数值写入键/Software/Classess/.htm/OpenWithList/devenv.exer的解决方案
- 力扣刷题 DAY_78 贪心
- Android开发:LocationManager获取经纬度及定位过程(附demo)
- 嵌入式linux学习笔记--TCP通讯整理
- Git+Pandoc配置Word文档版本控制
- ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supp
- Ubuntu 18.04 ———(Intel RealSense D435i)运行VINS-Mono
- vue渲染数据后顺序乱了
- 前端还是后端,该怎么选择