STM32实现定时器控制LED闪烁
文章目录
- 一、定时器介绍
- 二、STM32C配置项目
- 1.新建工程
- 2.配置引脚
- 3.配置SYS
- 4.配置GPIO
- 5.配置定时器
- 6.配置中断
- 7.时钟配置
- 8.创建代码
- 三、修改keil代码
- 四、实物连线
- 五、实验效果
- 六、总结
- 七、参考资料
一、定时器介绍
上来说就是用来定时的机器,是存在于STM32单片机中的一个外设。STM32总共有8个定时器,分别是2个高级定时器(TIM1、TIM8),4个通用定时器(TIM2、TIM3、TIM4、TIM5)和2个基本定时器(TIM5、TIM6),如下图所示:
这三种定时器的区别如下:
STM3 的通用 TIMx (TIM2~TIM5 和 TIM9~TIM14)定时器功能包括:
1.16 位/32 位(仅 TIM2 和 TIM5)向上、向下、向上/向下自动装载计数器(TIMx_CNT),注意:TIM9~TIM14 只支持向上(递增)计数方式。
2.16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~ 65535 之间的任意数值。
3.4 个独立通道(TIMx_CH14,TIM9TIM14 最多 2 个通道),这些通道可以用来作为:
A.输入捕获
B.输出比较
C.PWM 生成(边缘或中间对齐模式) ,注意:TIM9~TIM14 不支持中间对齐模式
D.单脉冲模式输出
4.可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。
5.如下事件发生时产生中断/DMA(TIM9~TIM14 不支持 DMA):
A.更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
C.输入捕获
D.输出比较
E.支持针对定位的增量(正交)编码器和霍尔传感器电路(TIM9~TIM14 不支持)
F.触发输入作为外部时钟或者按周期的电流管理(TIM9~TIM14 不支持)
二、STM32C配置项目
1.新建工程
2.配置引脚
3.配置SYS
4.配置GPIO
5.配置定时器
这里我们使用定时器2来实现定时的功能。如图所示,依次点击位置1,选中定时器2;位置2,配置定时器2的时钟源为内部时钟;位置3,分频系数为71,向上计数模式,计数周期为5000,使能自动重载模式。
注:分频系数那里虽然写的是71,但系统处理的时候会自动加上1,所以实际进行的是72分频。由于时钟我们一般会配置为72MHZ,所以72分频后得到1MHZ的时钟。1MHZ的时钟,计数5000次,得到时间5000/1000000=0.005秒。也就是每隔0.005秒定时器2会产生一次定时中断。
6.配置中断
开启定时器2的中断
生成定时器2中断优先级配置代码
7.时钟配置
8.创建代码
三、修改keil代码
生成工程后,打开,添加中断响应之后所需的一些代码。在main.c文件中添加如下内容,位置1:
注:该函数表示启动相应的定时器,“h”表示HAL库,“tim2”表示定时器2。所以这行代码的意思就是启动定时器2。
HAL_TIM_Base_Start_IT(&htim2);
位置2:
代码如下:
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{static uint32_t time_cnt =0;if(htim->Instance == TIM2){if(++time_cnt >= 100){time_cnt =0;HAL_GPIO_TogglePin(D1_GPIO_Port,D1_Pin);}}
}
该函数为定时器的中断回调函数,当产生定时中断的时候,会自动调用这个函数。在函数内部定义了一个静态变量:time_cnt。当它大于等于100的时候,才会执行if里面的代码。也就是说需要发生100次中断,才会让LED的状态翻转。前面已经算过了,一次定时中断的时间是0.005秒,所以100次中断的时间是0.005*100=0.5秒。也就是说每隔0.5秒,LED的状态翻转一次。
修改后,保存,编译、下载,重新上电。可以看到LED1差不多每隔0.5秒翻转一次,实现了我们想要的效果。
四、实物连线
五、实验效果
VID_20221027_212402
六、总结
通过本次实验完成了利用定时器实现LED灯0.5秒周期闪烁,在学习定时器知识的同时也提高了动手能力。
七、参考资料
STM32CUBEMX_定时器控制LED闪烁
STM32-定时器详解
STM32实现定时器控制LED闪烁相关推荐
- 嵌入式STM32入门之定时器控制LED闪烁与产生PWM脉冲宽度调制信号
定时器控制LED闪烁与产生PWM脉冲宽度调制信号 一.前言 二.定时器基本介绍 (一)STM32定时器 (二)通用定时器主要功能 (三)计数器模式 (四)定时器工作原理 三.实验(1)初识定时器 (一 ...
- STM32通过串口控制LED闪烁或者呼吸效果
STM32通过串口控制LED闪烁或者呼吸效果 目录 STM32通过串口控制LED闪烁或者呼吸效果 1.准备工作 2.思路分析 3.实际操作 4.小结 1.准备工作 1.首先我们需要准备32的最小系统板 ...
- 嵌入式小白学习:STM32实现定时器控制LED灯
嵌入式小白学习:STM32实现定时器控制LED 目录 嵌入式小白学习:STM32实现定时器控制LED Part1.理论基础 Part2.环境的配置 Part3.代码的更改 Part4.实物的连线 Pa ...
- 定时器控制LED闪烁
一.实现功能 通过定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到二.使用步骤二.使用步骤了以后,处理定时相关的任务.设置一个2秒的定时器,让L ...
- STM32实现定时器和LED呼吸灯
目录 一.实现定时器 1.定时器的介绍 1.1定时器的概念及作用 1.2定时器的分类 2.新建项目 2.1新建 2.2选择STM32F103C8T6芯片 2.3配置SYS 2.4配置RCC 2.5配置 ...
- STM32定时器控制LED灯闪烁及PWM练习
一.STM32定时器控制LED灯闪烁 1.相关配置 1)配置RCC和SYS 2)配置IO 配置PC15,并命名为D1. 3)配置定时器 选定时器2,配置Clock Source为Internal Cl ...
- 定时器中断控制LED闪烁(每隔1s)---普中科技开发仪
定时器中断o,利用中断控制LED闪烁每隔1s闪烁一次(精确的1s) notes: (1)工作方式寄存器TMOD ,低四位用于To,高四位用于T1,(GATE,C/T- ,M1,M0) 一般让GATE ...
- 用定时器T0查询方式P0口8位控制LED闪烁
#include<reg52.h> #define uchar unsigned char #define uint unsigned int void main (void) { uch ...
- 用定时器T0查询方式P0口8位控制LED闪烁 T1查询方式P1口8位控制LED闪烁
//用定时器T0查询方式P0口8位控制LED闪烁 T1查询方式P1口8位控制LED闪烁 #include<reg52.h> // 包含52单片机寄存器定义的头文件 #def ...
最新文章
- Linux ALSA声卡驱动之六:ASoC架构中的Machine
- matlab画扇区,NFCDemo NFC读写测试 ,自动读取每个扇区 块的值 matlab 238万源代码下载- www.pudn.com...
- 双循环格局对话国际农民丰收节交易会 谋定农业贸易高质量
- 使用缓冲流有什么好处_使用PVC石笼网有什么好处?
- oracle基本笔记整理及案例分析1
- python教学查询,python基础教程之查询集 QuerySet和管理器Manager
- 文件管理系统(开发文档)
- SpringBoot拦截全局异常并发送邮件给指定邮箱
- 自然数简化到素数:黎曼猜想RiemannHypothesis及其解释(公号回复“黎曼猜想”下载PDF经典收藏版彩标资料)
- [COGS 2479] [HZOI 2016] 偏序
- Openstack 环境下虚拟机KVM之间的互通
- Android应用内存管理机制
- 基于C++的《元素战争》基于win32框架的电脑游戏设计
- 设计模式--有道笔记的整理
- 在酒店怎么让你电脑的网速比别人快?
- 设计模式之工厂模式(Factory)
- Goolg Maps android API V2版详解(二)新地图get~
- 因故意引入漏洞,整所大学被禁止为Linux内核做贡献,回应来了!
- 计算机应用基础模拟试卷 一,计算机应用基础模拟试卷一模拟试卷-02answer
- 基于 Ubuntu 20.04 系统 部署 NetBox
热门文章
- JavaScript define
- 小程序-滑块+iconfont下载本地使用
- 科大讯飞也推AI智能硬件,K12“知识图谱型”AI教育“真香”?
- sofa server端处理client端请求流程
- wx.saveImageToPhotosAlbum将图片保存到本地
- Quartus II 功能仿真设置流程
- Mac还是Win?告诉你哪些人适合买Mac!
- 广州住房公积金管理中心综合业务管理系统容灾项目中标公告
- 程序猿之华丽转身:必备技术面试手册
- 河南理工大学c语言程序第六章答案,河南理工大学C语言课后习题答案精解第六章..ppt...