PWM:输出比较实验

本文详细介绍了STM32的PWM翻转模式,通过设置TIM_OCInitStructure.OCMode = TIM_OCMODE_TOGGLE实现电平翻转。实验内容包括输出四路不同频率的50%占空比信号,利用中断不断修改CCR值以实现复杂波形输出。文中还提及了PWM模式与输出比较模式的区别,并提供了代码解析。
摘要由CSDN通过智能技术生成

前言

1、输出模式有很多,其中有上次讲到的pwm模式。输出比较模式里面有很多模式,这次用的就是翻转模式,在CCMR寄存器里,翻转翻转的只是参考电平,输出的实际电平还要与后面的具体高电平有效还是低电平有效配合使用
TIM_OCInitStructure.OCMode = TIM_OCMODE_TOGGLE;//输出比较模式的翻转模式,当CNT计数到CCR1(也就是PWM中设定脉宽的那个)时电平出现一次翻转,并可以配置产生相应的中断DMA等

#define TIM_OCMODE_TIMING                   0x00000000U                                              /*!< Frozen                                 */
#define TIM_OCMODE_ACTIVE                   TIM_CCMR1_OC1M_0                                         /*!< Set channel to active level on match   */
#define TIM_OCMODE_INACTIVE                 TIM_CCMR1_OC1M_1                                         /*!< Set channel to inactive level on match */
#define TIM_OCMODE_TOGGLE                   (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)                    /*!< Toggle                                 */
#define TIM_OCMODE_PWM1                     (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)                    /*!< PWM mode 1                             */
#define TIM_OCMODE_PWM2                     (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0) /*!< PWM mode 2                             */
#define TIM_OCMODE_FORCED_ACTIVE            (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)                    /*!< Force active level                     */
#define TIM_OCMODE_FORCED_INACTIVE          TIM_CCMR1_OC1M_2                                         /*!< Force inactive level                   */

实验介绍

1:输出四路占空比为50%但是频率不同的函数。
2:在中断中不断修改CCR的值,通过不断的匹配翻转,匹配翻转来达到目的。和PWM输出的区别是PWM输出是CNT到ARR的时候为一个周期,而这个实验在CNT还没有到ARR的时候就可以通过改变CCR(捕获比较寄存器,每个通道都有一个)的值,实现一个ARR里面有多次翻转,实现一个复杂波形的输出。这个时候CNT的值是不断增加的,直到过了这个周期,即达到ARR(自动重载计数器)时,计数器才会清零,即重新开始。
3:四个通道用的都是同一个CNT
4:参考野火电机定时器章节</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成草

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值