OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4299|回复: 0

STM32 通过示波器PWM输出极性的实验

[复制链接]

221

主题

221

帖子

0

精华

高级会员

Rank: 4

积分
762
金钱
762
注册时间
2021-5-18
在线时间
28 小时
发表于 2021-11-1 13:46:24 | 显示全部楼层 |阅读模式
在PWM模式2中,CNT<CCR时输出无效电平,CNT>CCR时输出有效电平。

PWM的有效输出电平在TIMx_CCER寄存器设置。
1.png
TIMx_CCER.1为0,OC1高电平有效;TIMx_CCER.1为1,OC1低电平有效。其他通道同理。

在PWM初始化函数中,通过TIM_OCInitStructure.TIM_OCPolarity设置输出极性,

    //配置PWM模式(TIMx_CCMR)
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
    //配置输出使能(TIMx_CCER)  0:禁止输出  1:输出到对应引脚
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    //配置输出极性(TIMx_CCER)  0:OCx高电平有效  1:OCx低电平有效
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
    //配置CCR寄存器(TIMx_CCRx) 16位宽
    TIM_OCInitStructure.TIM_Pulse = 64;
    TIM_OC2Init(TIM3, &TIM_OCInitStructure);
如下代码摘自库函数TIM_OC2Init,说明在PWM初始化过程中确实是通过配置CCER寄存器对应位设置PWM的输出极性。

  tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 4);
下面通过示波器实验PWM的输出极性控制,

    //配置PWM模式(TIMx_CCMR)
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
    //配置输出使能(TIMx_CCER)  0:禁止输出  1:输出到对应引脚
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    //配置输出极性(TIMx_CCER)  0:OCx高电平有效  1:OCx低电平有效
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
    //配置CCR寄存器(TIMx_CCRx) 16位宽
    TIM_OCInitStructure.TIM_Pulse = 64;
    TIM_OC2Init(TIM3, &TIM_OCInitStructure);

    //使能OC2的预装载寄存器(TIMx_CCMR.11)
    TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
               
    //TIM_Cmd(TIM3, ENABLE);
如上代码设置,初始化TIM_OC2Init后,PWM输出即刻接到对应引脚PA7,此时CCR2寄存器内的值64与定时器计数值比较,因为我们没有打开定时器,所以此时CNT寄存器为0,有CNT < CCR2,在PWM Mode2下,输出无效电平,如上代码设置有效电平为低电平(即无效电平为高电平),因此此时应该输出高电平,

修改上述代码,将有效电平修改为高电平,
2.jpg
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
此时示波器的输出如下,
3.jpg
原文链接:http://bj.dyrs.com.cn/story/202111/1164808

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 19:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表