脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,简称脉宽调制。

脉冲:方波,频率(freq)                     

宽度:高电平的宽度,决定了占空比(duty)

占空比:就是我们高电平占整个周期的百分比

占空比25%          

占空比50%        

占空比变化动图:

占空比控制舵机角度:

PWM1和PWM2模式

1.定义

PWM 模式 1——只要 TIMx_CNT < TIMx_CCR1,通道 1 便为有效状态,否则为无效状态。

PWM 模式 2——只要 TIMx_CNT < TIMx_CCR1,通道 1 便为无效状态,否则为有效状态。

TIMx_CNT由TIM_TimeBaseStructure.TIM_Period决定,也就是计数值,分频系数一定的情况下,它决定我们的PWM的输出频率是多少。

TIMx_CCR1由TIM_SetComparex(x:1、2、3、4)函数决定,也就是比较值。

有效状态由TIM_OCInitStructure.TIM_OCPolarity决定,假如我们设置高电平为有效电平,反之低电平就为无效电平。

比较值决定我们的PWM的占空比,当我们计数值是0~99,因为是高电平为有效电平,当我们计数没有到50的时候,我们都是高电平,大于50的时候,就是无效电平,即低电平。

其中我们比较值可以直接在TIM_OCInitStructure.TIM_Pulse=后面直接填上,也可以掉用一个专门的函数TIM_SetCompare1(TIMx,比较值);它由2个参数,第一个参数是哪个定时器,第二个参数是我们的比较值大小。且我们也一定要注意这个函数是哪个通道使用。

注:

通道1:TIM_SetCompare1

通道2:TIM_SetCompare2

通道3:TIM_SetCompare3

通道4:TIM_SetCompare4

定时器多通道的理解如图

问题:假如我们的LED1和LED2同时共用TIM1,分别为通道1、通道2,那么CH1和CH2输出频率可以不一样吗?占空比可以不一样吗?

答:输出频率肯定是一样的,因为是同一个定时器,占空比由比较值决定,可以不一样。

注意:TIM1是高级定时器,要额外添加语句TIM_CtrlPWMOutputs(TIM1,ENABLE)。

STM32 PWM的理解相关推荐

  1. STM32 PWM波驱动模拟舵机(库函数版)

    数字舵机 vs 模拟舵机 "数字舵机区别于传统的模拟舵机,模拟舵机需要给它不停的发送PWM信号,才能让它保持在规定的位置或者让它按照某个速度转动,数字舵机则只需要发送一次PWM信号就能保持在 ...

  2. STM32 PWM输出实验总结

    本实验是基于STM32 407的板子,使用的是通用定时器TIM14,相关的博文其实有很多,本文主要是基于他们结合个人学习理解总结整理,并非完全原创,只希望能帮助更好理解PWM输出的过程尤其是TIM_A ...

  3. STM32 PWM输出实验

    定时器用来产生PWM输出: STM32 的定时器除了 TIM6 和 7.其他的定时器都可以用来产生 PWM 输出.其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出.而通 ...

  4. stm32 PWM互补输出

    stm32高级定时器例子-stm32 PWM互补输出 定时器初始化结构体 TIM_TimeBaseInitTypeDef 时基结构体,用于定时器基础参数设置,与TIM_TimeBaseInit函数配合 ...

  5. STM32 PWM控制舵机

    目录 舵机简介 舵机工作原理 什么是PWM 硬件连线 代码 实现结果 总结 舵机简介 舵机是指在自动驾驶仪中操纵飞机舵面(操纵面)转动的一种执行部件.分有:①电动舵机,由电动机.传动部件和离合器组成. ...

  6. STM32 PWM周期与频率的计算

    文章目录 STM32 PWM周期与频率的计算 频率的计算 占空比的计算 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出. STM32 PWM周期与频率的计算 TIM_TimeBaseInit ...

  7. STM32 PWM控制舵机——原理、接线、源程序

    STM32--PWM 控制舵机 通用定时输出PWM PWM的工作原理 PWM的模式 TIM_OCMode_PWM1 (边沿对齐模式) TIM_OCMode_PWM2(中央对齐模式) 占空比 舵机 实物 ...

  8. WS2812灯珠(三)-- STM32 PWM+DMA方式驱动

    WS2812灯珠(三)-- STM32 PWM+DMA方式驱动 文章目录 WS2812灯珠(三)-- STM32 PWM+DMA方式驱动 一.理论 二.代码实践 一.理论 PWM输出就是对外输出脉宽( ...

  9. STM32 PWM输出之TIM_SetCompare函数的应用

    STM32 PWM输出之TIM_SetCompare函数的应用 想必输出PWM大家都应该会了吧,但是如何更加灵活方便的使用PWM,可能大家还存在着问题,今天我给大家介绍一下TIM_SetCompare ...

最新文章

  1. 深度学习——自动编码器,对称网络结构
  2. 动手使用ABAP Channel开发一些小工具,提升日常工作效率
  3. 一篇文章让你真正了解Java
  4. .NET开发框架(八)-服务器集群之网络负载平衡(视频)
  5. node 安装 webpack
  6. 【转载保存】Jsoup使用
  7. Docker安装Zookeeper并进行操作
  8. C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”
  9. ubantu下面U盘无法识别
  10. 华为9月将带来鸿蒙系统2.0;张勇任阿里巴巴董事长后发布首封致股东信;iOS 14首个公测版发布​| 极客头条
  11. C# ToString() 参数大全
  12. python实时监控_python实时监控cpu小工具
  13. STM32F429i-DISCO FreeRTOS keil STM32CubeMX
  14. Atitit 短信 技术的概论 短信备份 attilax总结 1.1. 短信的历史 1 1.2. 短信长度 160字的长度限制灵感来自对明信片的研究。明信片。大多数明信片上的字符不超过160个
  15. trajan算法求lca 超级详细配图讲解
  16. 一文讲透高速缓存原理
  17. oracle中文chr,Oracle中chr(10) chr(9)和chr(13)用法和意义
  18. 〖Python接口自动化测试实战篇⑦〗- 接口抓包工具 Fiddler 的使用
  19. iP138查询网,ip数据库
  20. [Python] 你的BMI是多少呢?

热门文章

  1. Truncate Table用法
  2. (二)u-boot2013.01.01 for TQ210:《Makefile分析》
  3. 计算机中函数vlookup怎么用,教您使用excel函数vlookup
  4. linux系统的版本(转载)
  5. PID控制算法实践应用(一):PID算法的离散化
  6. 介绍一款开源的自动驾驶仿真模拟器-Carla
  7. python读取加密word_Python 实现加密过的PDF文件转WORD格式
  8. 在vc中作用mapx
  9. cookie是什么?有什么用?
  10. 【UML --- 用例图】用例图的基本介绍和使用