STM32F4的输出比较极性和PWM1,PWM2的关系

这篇具有很好参考价值的文章主要介绍了STM32F4的输出比较极性和PWM1,PWM2的关系。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PWM

STM32F4的输出比较极性和PWM1,PWM2的关系

输出比较通道

在这里以通用定时器的通道1作为介绍。
如图,左边就是CNT计数器和CCR1第一路的捕获/比较寄存器,它俩进行比较,当CNT>CCR1,
或者CNT=CCR1时,就会给输出模式控制器传送一个信号,然后输出模式控制器就会改变它的
输出OC1ref的高低电平(这里ref是referencel的缩写,意思是参考信号)。
上面还有个ETRF输入,这个是定时器的一个小功能,一般不用。
接着这个ref信号有两条路可以走,一路可以前往主模式控制器,把这个ref信号映射到主模式的
TRGO输出上去。而另一路先到达极性选择模块,由寄存器TIMx_CCER控制,给TIMx_CCER的
CC1P写0,信号往上走,输入信号不反相;写1,信号就会往下走,信号会通过一个非门取反,

那输出的信号就是输入信号高低电平反转的信号。
接着就是输出使能电路,选择要不要输出,由寄存器TIMx_CCER的CC1E控制。
最后就是0C1引脚,这个引脚就是CH1通道的引脚。
STM32F4的输出比较极性和PWM1,PWM2的关系

输出比较模式

输出比较模式的选择是通过改变输出模式控制器的执行逻辑实现的,由寄存器TIMx_CCMR1的OC1M控制。
STM32F4的输出比较极性和PWM1,PWM2的关系
输出比较模式总共有8种,我们这里只介绍最常用的PWM模式。PWM输出就是对外输出脉宽(即占空比)可调的方波信号,信号频率由自动重装寄存器ARR的值决定,占空比由比较寄存器CCR的值决定。PWM模式分为两种,PWM1和PWM2,总得来说是差不多的。
STM32F4的输出比较极性和PWM1,PWM2的关系
配置好了时基单元,CNT就开始不断地自增运行了。然后就是输出比较单元,总共有四路。输出比较单元的最开始是CCR,它的值由我们自己设定,CNT不断自增运行,同时与CCR进行比较。后面就是输出模式控制器,以PWM模式1向上计数为例,CNT小于CCR时,REF置有效电平,CNT大于等于CCR时,REF置无效电平。再经过极性选择,使能输出,最终通向GPIO口,输出波形。

PWM波的实现:

如上图右上角所示,CNT从O开始自增,一直增到ARR(这里值为99),之后清零继续自增。设定下面绿色线为输出状态,在这个过程中,CNT小于CCR(这里值为30),输出置高电平,反之,置低电平。这样一直持续下去,REF的电平就会不断变化,

PWM参数计算:

1.PWM频率:Freq=CK_PSC/(PSC+1)/(ARR+1)
2.PWM占空比:Duty=CCR/(ARR+1)
3.PWM分辨率:Reso=1/(ARR+1)
PWM的周期对应着计数器的溢出更新周期,所以PWM的频率就等于计数器的更新频率。
分辨率就是占空比变化的步距。CCR的值应该设置在O到ARR+1这个范围里,当CCR=ARR+1
时,占空比刚好为100%。如果CCR再大一些,占空比依然为100%,没有意义。所以CCR的变化范围取决于ARR的值,ARR越大,CCR的范围就越大,对应的分辨率就越大。对于同一个定时器的不同通道输出的PWM,因为不同通道是共用一个计数器的,所以它们的频率是一样的。而它们的占空比是由各自的CC决定的,所以占空比可以各自设定它们的相位,由于计数器更新,所有PWM同时跳变,所以它们的相位是同步的.

区别

PWM1中空控制的是高电平的占空比,外接LED的时候灯光是随着TIMx_SetComparex()函数中占空比的增大由最亮逐渐变最暗,当达到100%的占空比的时候最暗。

PWM2中空控制的是低电平的占空比,外接LED的时候灯光是随着TIMx_SetComparex()函数中占空比的增大由最暗逐渐变最亮,当达到100%的占空比的时候最亮
STM32F4的输出比较极性和PWM1,PWM2的关系

输出极性

PWM模式1-*在向上计数时,*一旦TIMx_CNT<TIMx_CCR1时,通道1为有效电平,否则为无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时,通道Q1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。
PWM模式2-*在向上计数时,一旦TIMx_CNT<TIMx_CCR1时,通道1为无效电平,*否则为有效电平;在向下计数时,一旦TIMx CNT>TIMx CCR1时,通道1为有效电平,否则为无效电平
输出比较极性,指的是你在比较匹配之后输出口(比如LED灯)输出的极性。
就是让你设置LED灯有效极性,你可以设置为高电平有效或者低电平有效
理解后,正题开始:
首先只看向上计数,别的都不看。
再看下面的图:
STM32F4的输出比较极性和PWM1,PWM2的关系
根据上面的图举例,正点原子板子上的LED灯一股都是低电平有效,而我们想达到的效果是随着占空比的增加(向上计数模式),灯的亮
度增加(低电平)。
根据上面的图,能实现的方式有两种:
1.低极性,PWM1
2.高极性,PWM2
如果我们自己画的板子,硬件LED设计是高电平有效,那么就是随着占空比的增加(向上计数模式),灯的亮度增加(高电平)。
根据上面的图,能实现的方式有两种:
1.高极性,PM12.低极性,PWM2

输出极性

http://www.openedv.com/forum.php?mod=viewthread&tid=285008&highlight=%CA%E4%B3%F6%BC%AB%D0%D4

定义:TIM_OCNPolarity_High为高极性
TIM_OCNPolarity_Low为低极性
STM32F4的输出比较极性和PWM1,PWM2的关系
110:PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为
无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否
则为有效电平(OC1REF=1)。
111:PWM模式2- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为
有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电

首先要先理解好这一句话:
当PWM模式2- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时
通道1为无效电平,否则为有效电平;
TIM_SetCompare2(TIM3,0);
1)为什么在高极性时,灯会灭呢
因为TIMx_CNT<TIMx_CCR1,通道1为无效电平
战舰板的LED是低电平亮,而TIM_SetCompare2(TIM3,0);即TIMx_CCR1的值为0,也就是TIMx_CCR1
<=TIM3_CNT时通道2输出是高电平
不符合LED灯低电平亮,LED灯是不亮的。
2)那么把高极性改为低极性,为什么灯会亮
如TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
因为CC1P=0时:OC1高电平有效 TIM_OCNPolarity_High
CC1P=1时:OC1低电平有效 TIM_OCNPolarity_Low
STM32F4的输出比较极性和PWM1,PWM2的关系
由于低极性输出的是低电平有效所以灯可以点亮
3)为什么把PWM2改成了PWM1,别的什么都没动,灯就亮了
“PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平”
4)考虑到设置CCR的值设置为300到500效果不是很明显
所以CCR取0和899,可以直接看出效果现象文章来源地址https://www.toymoban.com/news/detail-439074.html

到了这里,关于STM32F4的输出比较极性和PWM1,PWM2的关系的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TIM-输出比较(PWM)——STM32

    Oc (Output Compare) 输出比较 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形 每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器的前3个通道额外拥有死区生成和互补输出的功能 第一步,

    2024年02月10日
    浏览(30)
  • STM32 TIM输出比较、PWM波形

    单片机学习! 目录 一、输出比较简介 二、PWM简介 三、输出比较通道 3.1通用定时器的输出比较部分电路 3.2高级定时器的输出比较部分电路 四、输出模式控制器 五、PWM基本结构 六、PWM参数计算 总结 前言         文章讲述STM32定时器的输出比较功能,它主要用来输出PWM波形

    2024年01月20日
    浏览(52)
  • STM32F1定时器-PWM输出

    STM32 PWM工作过程 ARR寄存器决定PWM周期,CCR寄存器决定占空比 通道1为例 的PWM输出电路图 CCR1:捕获比较(值)寄存器(x =1,2,3,4):设置比较值。 CCMR1:OC1M[2:0]位:对于PWM方式下,用于设置PWM模式1【110】 或者PWM模式2【111】 CCER:CC1P位:输入/捕获1输出极性。0:高电平有效,1:低电平

    2024年02月09日
    浏览(71)
  • STM32笔记——定时器输出比较功能(产生PWM波)

    目录 一、概述 二、PWM简单介绍  三、通用定时器输出比较 3.1 输出比较简介 3.2 输出比较通道 3.3 产生PWM的过程 四、实验硬件介绍及PWM模块程序 4.1 舵机简介 4.2 直流电机及驱动芯片TB6612  4.3 PWM模块驱动程序         主要介绍通用定时器输出比较功能,在GPIO口输出PWM来控

    2024年02月13日
    浏览(32)
  • stm32f407单一定时器输出四路PWM波

    最近在玩遥控器多路pwm捕获,顺带着写了一下pwm波输出的代码,下面我来说一下407板子输出pwm波的具体配置及函数说明。 输出效果如下。PS:因为我的分析仪只能接一个,就只看一路的输出 1、开启时钟及定时器引脚复用 在输出PWM波时要开启定时器时钟及GPIO时钟,本例以TI

    2024年02月12日
    浏览(27)
  • Proteus仿真stm32f103r6输出PWM/正弦波

    Proteus仿真stm32f103r6输出PWM/正弦波  

    2024年01月23日
    浏览(37)
  • STM32-HAL库08-TIM的输出比较模式(输出PWM的另一种方式)

    STM32F103C6T6最小系统板 STM32CUBEMX(HAL库软件) MDK5 示波器或者逻辑分析仪 通过定时器TIM的输出比较模式得到预定频率与占空比的PWM波形;其中定时器输出比较模式与PWM模式的区别在于!!! PWM模式在同一个TIM下所有输出口的频率一致不能单独控制单个的频率 ,而输出比较模式

    2024年02月03日
    浏览(43)
  • STM32TIM定时器PWM输出比较(适用于通用,高级定时器)

    在定时器中我们最常用的功能就是输出PWM,大多是用在电机控制方面,目前网络上相关资料也有很多,但是,很多不利于我们“现搜现用”我这里不是说我写的有多好,而是你搜索到此类文章时大部分是急于解决目前的问题,一段相关代码和讲解就行,当然不是学习背后的原

    2024年01月25日
    浏览(44)
  • 2023版 STM32实战6 输出比较(PWM)包含F407/F103方式

    -1-只有通用/高级定时器才能输出PWM -2-占空比就是高电平所占的比例 -3-输出比较就是输出不同占空比的信号 -1-1- PWM工作模式 -1-2- 有效/无效电平 有效电平可以设置为高或低电平,是自己配置的 周期=重装载 * 预分频值 / 时钟频率 arr和psc是自己定义的 时钟频率可以查看时钟树

    2024年02月07日
    浏览(21)
  • STM32 PWM模式与输出比较模式的区别。PWM占空比不生效,在STM32CubeMX中配置PWM的两种模式——蓝桥杯嵌入式

      🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都已更新完毕,欢迎大家前往订阅本专题🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题 🎏【蓝桥杯嵌入式】蓝桥杯第十三届

    2023年04月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包