| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32输出PWM完成呼吸灯 -> 正文阅读 |
|
[嵌入式]STM32输出PWM完成呼吸灯 |
文章目录?? 一.PWM介绍1.定义??PWM(Pulse Width Modulation)即脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术;它是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。 2.基本原理??PWM就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也可以这样理解,PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。 3.优点及应用范围??由于其控制简单、灵活和动态响应好等优点而成为电力电子技术应用最广泛的控制方式,其应用领域包括测量,通信, 功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些音频放大器,因此学习PWM具有十分重要的现实意义。 4.主要参数
5.PWM的产生??STM32的定时器除了TIM6和7,其他的定时器都可以用来产生PWM输出。其中高级定时器TIM1和TIM8可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输出。
6.PWM工作原理??在下图的通用定时器框图中,主要涉及到最顶上的一部分(计数时钟的选择)、中间部分(时基单元)、右下部分(PWM输出)这三个部分。 在PWM输出模式下,除了CNT(计数器当前值)、ARR(自动重装载值)之外,还多了一个值CCRx(捕获/比较寄存器值); 7.PWM输出的模式区别
例如:若PWM模式1,且CCER寄存器的CCxP位为0,则当TIMx_CNT<TIMx_CCR1时,输出高电平;同样的,若PWM模式1,且CCER寄存器的CCxP位为2,则当TIMx_CNT<TIMx_CCR1时,输出低电平。 8.PWM的计数模式
9.PWM相关配置寄存器??包含三个寄存器: (1) 捕获/比较模式寄存器(TIMx_CCMR1)
(2)捕获/比较使能寄存(TIMx_CCER)
(3)捕获/比较寄存器(TIMx_CCR1)
二.工程建立这里笔者选择采用hal库完成所有实验要求,这样比较简单也易于理解,关于STM32CubeMX软件在笔者之前博客有详细讲述过了。 1.题目要求??使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果。 2.工程建立(1)创建新项目在STMCubeMX主界面,创建新项目,点击 (2)芯片选择在 (3)配置RCC点 (4)配置SYS选择调试接口,点 (5)配置定时器3和定时器4这里我们选择定时器3和定时器4来实现定时的功位置3,分频系数为71,向上计数模式,计数周期为500,使能自动重载模式。通道1选择: (6)时钟配置如图所示更改配置即可。 (7)配置项目设置(8)生成项目三.代码编写1.设置占空比打开工程,主要修改main.c文件。首先定义一个变量,用来存储占空比:初值设为10。
2.开启PWM信道开始TIM3的通道3,输出PWM。
3.调用代码这里我们设置为每隔50毫秒,占空比加10,如果超过500(也就是PWM周期),自动变成0。(即灯会从亮倒暗,逐渐变化)
四.硬件连接1.线路连接根据查询数据手册可发现定时器3,4的一通道分别对应引脚
2.结果演示根据我们之前的配置,两个灯应做到完全同步,同时完成由亮到暗的变化过程。具体结果如视频演示。 呼吸灯 五.总结??笔者通过这次实例演训,学习到了PWM的相关理论知识,并学会了对其的基本应用。在最开始笔者以为一定要PWM输出端才可以亮灯或者对引脚进行复用操作,可再后来查询资料详细了解其原理后,发现直接将PWM作为一端输入即可。通过本次实验笔者明白有些东西要敢于尝试,不要不尝试就急于去否定,要不畏困难,多加思考去推测不要有畏难心理,就如同我们做题明明离答案就差一步但我们会因为感觉不可行或复杂而放弃掉。 参考 1.STM32CUBEMX_基于PWM的呼吸灯 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:36:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |