当前位置: 首页 > article >正文

第20讲 动画讲解轻松学会STM32的PWM

来源:【STM32】动画讲解轻松学会STM32的PWM_哔哩哔哩_bilibili

基本概念

周期/频率

计算公式:PWM周期=1个高电平用时+1个低电平用时

                  PWM的频率=1/周期

如图所示此时周期为1ms,即1s内存在1000组这样的高低电平,PWM的频率为1000hz。


占空比

计算公式:PWM占空比=高电平用时/PWM周期

即高电平在一个PWM周期内占用的时间比例就叫做占空比。

如图所示1个周期为1ms的PWM方波中高电平占用0.8ms,那么这个PWM方波的占空比就是80%。

用途

PWM设计初衷就是利用数字信号尽可能地拟合模拟信号,手段就是调节PWM的占空比。

如图所示,高电平为3.3V,低电平为0V,那么设置占空比为50%就可以从宏观角度实现输出直流信号幅值为1.65V。

那么同理,占空比为10%时,信号幅值为0.33V。

最关键的是PWM可以实现动态变化,比如如图所示的用PWM拟合sin函数(原理是傅里叶变换,感兴趣的同学可以去看正点原子的手册)。合理调节占空比和频率后输出的PWM信号,就可以控制电机的转速、灯泡的明暗程度、蜂鸣器的音调、舵机的角度等外部设备参数。

TIM实现PWM的输出的原理

定时器的输出比较模式可以输出我们想要的脉冲宽度。在输出比较模式下,我们首先要在比较寄存器中写入一个数值。之后定时器会一直比较计数器值与比较寄存器数值的大小关系,根据这个大小关系来决定输出有效电平还是无效电平。

输入捕获的几种模式:

①冻结模式:输出通道GPIO口不理会比较结果,依旧维持旧的输出状态

②强制有效\强制无效:强制输出通道GPIO口输出有效\无效电平

③匹配有效\匹配无效:比较计数器值与比较寄存器数值相等时输出有效电平\无效电平(如果相等前就是有效\无效电平则维持)

④匹配翻转:二值完全相等时翻转当前输出的电平,这种模式可以输出占空比为50%的方波

④PWM模式:第一种比较计数器值<比较寄存器数值,输出有效电平,反之输出无效电平;第二种比较计数器值>比较寄存器数值,输出有效电平,反之输出无效电平。

同时注意存在向上计数、向下计数以及中央对其模式,下图为三者的矩阵形式概述图:

但一般我们也只用向上计数。

实际操作

 首先可以看看拙作:利用STM32的定时器输出PWM方波_stm32f030 定时器方波-CSDN博客

下面介绍一下kk讲的:

①选中可以输出PWM的定时器Channel

②在Timers的mode面板上,设置Clock Source为Interal Clock;输出通道选择PWM输出模式

③在Timers的Configuration面板上设置参数

1.PWM周期=(Prescaler+1)(Counter Period+1)/挂载定时器的时钟总线频率,通过这个公式填写预分频系数和时钟周期

2.计数模式选择为向上计数


http://www.kler.cn/a/280306.html

相关文章:

  • FL Studio24.1.1.4239无限试用版安装包下载!快来尝鲜吧!
  • word、pdf、excel及zip加密(含示例效果及工具类)
  • SQLAlchemy 在 Python 中的同步与异步操作及CRUD实现指南
  • 【面试问题汇总】
  • Spring 源码解读:逐步实现 IoC 容器,深入理解 Spring 核心原理
  • 自动化运维:Ansible、Puppet、Chef工具对比与实战
  • MySQL的安装配置教程
  • 服务器机柜是什么意思?
  • AGI系列(8)零门槛信息抓取利器打造,免费自动化抓取推特上的热点内容
  • C#WinFrom 中实现可自定义按钮和事件的消息提示框
  • [Linux][软件]CentOS 系统部署 RabbitMQ
  • 代码随想录算法训练营第二十五天(回溯 四)
  • 【文心智能体】通过低代码工作流编排创建应用《挑战奥运问答拿奖牌》
  • Leetcode面试经典150题-72.编辑距离
  • 基于Swagger自动生成离线API文档(Word、Markdown文档)
  • 【面试】jvm静态变量和局部变量对比
  • 回车键实现登录
  • Openai API + langchain 分析小型pdf文档
  • Tomcat的配置文件中有哪些关键的配置项,它们分别有什么作用?
  • 【搜索引擎】ElasticSearch 7.x版本