STM32实现定时器和LED呼吸灯
目录
一、实现定时器
1.定时器的介绍
1.1定时器的概念及作用
1.2定时器的分类
2.新建项目
2.1新建
2.2选择STM32F103C8T6芯片
2.3配置SYS
2.4配置RCC
2.5配置GPIO。LED配置PA5
2.6设置定时器TIM2
2.7配置NVIC
2.8配置生成keil5工程文件
2.9打开keil
3.代码
3.1打开main.c,在main.c里面加入代码:
3.2编译生成hex文件
4.电路连接并烧录运行
4.1连接电路
4.2烧录
4.3运行结果
二、LED呼吸灯
1.PWM的介绍
1.1概述
1.2优点
1.3主要产生方法
1.4PWM电路图
1.5PWM基本原理
2.新建项目
2.1新建
2.2选择STM32F103C8T6芯片
2.3配置SYS
2.4配置RCC
2.5配置定时器(TIM3,TIM4)
2.6配置led相应引脚
2.7配置生成keil5工程文件
2.8打开keil
3.代码
3.1在main.c中修改以下代码:
3.2设置相关参数
3.3编译生成hex文件
4.电路连接并烧录运行
4.1连接电路
4.2烧录
4.3运行结果
5.波形观察
5.1设置
5.2波形结果
三、总结
四、参考资料
一、实现定时器
1.定时器的介绍
1.1定时器的概念及作用
定时器的主要作用是产生一个时基,通俗的讲就是从某一时刻开始,经过一段指定的时间,触发一个中断或超时回调事件,可以在中断或者超时回调函数中处理数据。
定时器在嵌入式系统中是个基础服务,比如RTOS就要依赖SysTick提供时钟节拍去实现线程延时、线程时间片轮询调度等,定时器可以分软件定时器和硬件定时器,我们还经常听到SysTick,RTC实时时钟等,定时器在生活中的应用也很常见,比如闹钟。
1.2定时器的分类
(1)硬件定时器
顾名思义,芯片本身提供的定时功能。一般是由外部晶振提供给芯片输入时钟,芯片向软件模块提供一组配置寄存器,接受控制输入,到达设定时间值后芯片中断控制器产生时钟中断。硬件 定时器的精度一般很高,可以达到纳秒级别,并且是中断触发方式,简言之,硬件定时器需要硬件资源支持产生稳定的时间基准。
(2)软件定时器
软件定时器的功能与硬件定时器类似,但是实现方式不同,软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受数目限制的定时器服务,一般使用SysTick作为基础时钟。
软件定时器是通过线程实现的而非中断实现,可能会被其它高优先级的线程打断,因此软件定时器只能用于对精度要求不高的场合,一般是毫秒级。
(3)系统滴答定时器(SysTick)
SysTick需要硬件支持,可以理解为一种简单的硬件定时器,SysTick定时器一般用于延时或作为RTOS中的系统时钟(心跳),实时系统中最小的时间单位就是SysTick定时器的中断周期,也就是1个tick。
(4)实时时钟(RTC)
RTC需要硬件支持,是一个独立的BCD定时器/计数器,主要作用是提供日历功能,不同的MCU,RTC特性可能也略有差异。以下是参数特性:
2.新建项目
2.1新建
2.2选择STM32F103C8T6芯片
2.3配置SYS
2.4配置RCC
2.5配置GPIO。LED配置PA5
2.6设置定时器TIM2
2.7配置NVIC
2.8配置生成keil5工程文件
2.9打开keil
3.代码
3.1打开main.c,在main.c里面加入代码:
3.2编译生成hex文件
4.电路连接并烧录运行
4.1连接电路
3v3-3v3
GND-GND
A5-二极管正极;G-二极管负极
A9-RXD;A10-TXD
4.2烧录
4.3运行结果
二、LED呼吸灯
1.PWM的介绍
1.1概述
PWM是一种对模拟信号电平进行
数字编码的方法。通过高
分辨率计数器的使用,方波的占空比被调制用来对一个具体
模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。
1.2优点
PWM的一个优点是从处理器到被控系统
信号都是数字形式的,再进行数模转换。可将噪声影响降到最低(可以跟电脑一样)。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。
对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。
1.3主要产生方法
(1)SPWM法
SPWM(Sinusoidal PWM)法是一种比较成熟的,使用较广泛的PWM法。
前面提到的采样控制理论中的一个重要结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。SPWM法就是以该结论为理论基础,用脉冲宽度按正弦规律变化而和正弦波等效的PWM波形即SPWM波形控制逆变电路中开关器件的通断,使其输出的脉冲电压的面积与所希望输出的正弦波在相应区间内的面积相等,通过改变调制波的频率和幅值则可调节逆变电路输出电压的频率和幅值。该方法的实现有以下几种方案。
(2)等面积法
该方案实际上就是SPWM法原理的直接阐释,用同样数量的等幅而不等宽的矩形脉冲序列代替正弦波,然后计算各脉冲的宽度和间隔,并把这些数据存于微机中,通过查表的方式生成PWM信号控制开关器件的通断,以达到预期的目的。由于此方法是以SPWM控制的基本原理为出发点,可以准确地计算出各开关器件的通断时刻,其所得的的波形很接近正弦波,但其存在计算繁琐,数据占用内存大,不能实时控制的缺点。
(3)硬件调制法
硬件调制法是为解决等面积法计算繁琐的缺点而提出的,其原理就是把所希望的波形作为调制信号,把接受调制的信号作为载波,通过对载波的调制得到所期望的PWM波形。通常采用等腰三角波作为载波,当调制信号波为正弦波时,所得到的就是SPWM波形.其实现方法简单,可以用模拟电路构成三角波载波和正弦调制波发生电路,用比较器来确定它们的交点,在交点时刻对开关器件的通断进行控制,就可以生成SPWM波。但是,这种模拟电路结构复杂,难以实现精确的控制。
(4)软件生成法
由于微机技术的发展使得用软件生成SPWM波形变得比较容易,因此,软件生成法也就应运而生.软件生成法其实就是用软件来实现调制的方法,其有两种基本算法,即自然采样法和规则采样法。
1.4PWM电路图
1.5PWM基本原理
(1)什么是PWM:PWM简称脉冲宽度调制,即在一个周期内存在不同极性的电平状态。
(2)PWM频率:是指一秒钟内从高电平时间在到低电平时间,再从低电平跳到高电平的瞬间次数,也就是一秒钟内有多少个PWM的周期。f = T / 1(HZ)。
(3)PWM周期:是指一秒钟内从高电平时间在到低电平时间,T = f / 1(s)。
(4) PWM占空比:是指一个周期内高电平时间和总时间的比值。
2.新建项目
2.1新建
2.2选择STM32F103C8T6芯片
2.3配置SYS
2.4配置RCC
2.5配置定时器(TIM3,TIM4)
2.6配置led相应引脚
2.7配置生成keil5工程文件
2.8打开keil
3.代码
3.1在main.c中修改以下代码:
3.2设置相关参数
3.3编译生成hex文件
4.电路连接并烧录运行
4.1连接电路
3v3-3v3
GND-GND
A9-RXD;A10-TXD
A6-LED正极(LED呼吸灯);C13-LED正极(PC13小灯呼吸灯)(两者无法同时显示)
4.2烧录
4.3运行结果
5.波形观察
5.1设置
5.2波形结果
三、总结
通过这次作业,对于定时器和呼吸灯我都有了一点的了解,对HAL库更加熟悉,同时对各种软件的运用也更加熟练。本次作业和前面的作业不太一样,前面的作业是通过循环、delay、Hal_delay函数等实现的,而这次是通过Timer定时器方式实现的,相比于前面的这次控制更加精准,更加方便。
四、参考资料
STM32CUBEMX_定时器控制LED闪烁 | MCU起航
STM32CUBEMX_基于PWM的呼吸灯 | MCU起航
stm32f103呼吸灯(PWM脉冲宽度调制)_火车在响沙湾的博客-CSDN博客_stm32f103呼吸灯
使用STM32输出PWM波形_不#曾&轻听的博客-CSDN博客_stm32输出pwm波形
STM32实现定时器和LED呼吸灯相关推荐
- 使用STM32输出PWM波形LED呼吸灯的效果
文章目录 前言 一.PWM简介 1.1 关于PWM 1.2 使用步骤 二.使用STM32CUBEMX实现2个 LED呼吸灯的效果 2.1.配置环境 2.2 代码配置 2.3.输出PWM波形 2.4 呼 ...
- stm32呼吸灯c语言程序,STM32使用PWM控制LED呼吸灯效果
实验的STM32型号: STM32F103C8T6 48引脚 涉及到的知识: RCC,GPIO,TIMER,PWM 设置 *RCC需打开外部时钟 *GPIO查表得知 PA3 默认复用引脚 TIM2 ...
- 基于STM32的PWM驱动LED呼吸灯
一,PWM基本原理 所谓PWM,就是脉冲宽度调制技术,其具有两个很重要的参数:频率和占空比.频率,就是周期的倒数:占空比,就是高电平在一个周期内所占的比例.如当周期T=T1+T2:T1为高电平时间,T ...
- 基于51单片机的LED呼吸灯设计(定时器)
定时器实现led呼吸灯 实验原理: 灯在高速闪烁时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失.每次循环时,前半部分先让亮的时间逐渐增加,暗的时间逐渐减小:后半部分 ...
- STM32输出PWM波形以及实现LED呼吸灯
目录 一.PWM的简介 1.PWM的定义 2.PWM的优点 3.PWM的几种控制方法 (1)等脉宽PWM法 (2)随机PWM (3)SPWM法 4.PWM的主要参数 (1)PWM占空比 (2)PWM的 ...
- 嵌入式学习——使用定时器输出PWM波形,实现 LED呼吸灯的效果
嵌入式学习--使用定时器输出PWM波形,实现 LED呼吸灯的效果 目录 嵌入式学习--使用定时器输出PWM波形,实现 LED呼吸灯的效果 1. 任务要求 2 PWM波介绍, 2.1 什么是PWM(Pu ...
- 使用TIM3和TIM4,驱动外接LED和STM32上已焊接的LED,实现2个 LED呼吸灯的效果
文章目录 一.PWM相关介绍 1.PWM的含义 2.PWM的基本原理 3.PWM的优点及应用范围 4.STM32上的PWM 5.PWM相关寄存器 6.PWM脉冲宽度调制 7.PWM的频率 二.实现呼吸 ...
- STM32输出PWM波形及LED呼吸灯
目录 一.PWM的介绍 1.概述 2.优点 3.主要产生方法 SPWM法 1.等面积法 2.硬件调制法 3.软件生成法 4.PWM电路图 5.PWM基本原理 二.cubemx项目的建立 1.选择芯片S ...
- STM32使用延时控制LED灯亮暗变换,LED呼吸灯效果
STM32F407ZE 使用延时控制LED灯亮暗变换,实现LED呼吸灯效果 具体代码如下: main.c部分 #include <stm32f4xx.h> #include "s ...
最新文章
- 参加峰会“金点子”的材料
- 决策树学习算法 - ID3算法
- JAVA数据库编程(JDBC技术)-入门笔记
- 蜂鸣器接入_无源蜂鸣器的原理和和mixly结合制作电子琴
- BloomFilter–大规模数据处理利器(转)
- 设计模式总结 (4)结构型模式
- ScrollView 分割屏幕效果
- iOS 之 const
- 完全卸载 RAC_clusterware的方法
- Streamlit —使用数据应用程序更好地测试模型
- tcpip网络编程 尹圣雨源码_网络编程——学习笔记
- 在Java eclipse 中Spring Boot工具安装步骤
- 高通似乎成了台积电和三星在先进工艺上暗战主角
- 为什么我一直强调大家要两条腿走路?
- Scala中fold()操作和reduce()操作的区别
- 分享Three.js 泛光(眩光)效果实现
- 轨迹绕圈算法_基于三次B样条曲线拟合的智能车轨迹跟踪算法
- Web全栈~29.MySQL
- js原生常用知识点总结
- 网狐大联盟机器管理工具编译与使用