18928|4

82

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于STM32的PWM快速打开/关闭,以及空闲时管脚电平设置 [复制链接]

现在使用TIM3来产生PWM波形,并通过软件打开/关闭PWM以实现调制波形。做法是:
打开:TIM_Cmd(TIM3, ENABLE);
关闭:TIM_Cmd(TIM3, DISABLE);
跟踪到TIM_Cmd之后,发现直接操作寄存器就可以了:TIMx->CR1 |= CR1_CEN_Set;
这个问题算解决了。
但是PWM关闭后,管脚电平是高电平,这不是我需要的……需要的是低电平。尝试关闭PWM后,加一行GPIO_ResetBits(GPIOC, GPIO_Pin_6);以把管脚设置为低电平。测试代码:
while(1)
{
       ENABLE_PWM();
        Delay_ms(10);//延时若干ms
        DISABLE_PWM();
        GPIO_ResetBits(GPIOC, GPIO_Pin_6);
        Delay_ms(10);//延时若干ms
}
用示波器观测了一下,发现PWM关闭期间管脚电平有时是高电平,有时是低电平……查找手册也没找到相关说法。用TIM_OC1Init()把TIM3重新配置一下倒是可以解决,但是速度太慢了。不知香水城有什么好办法没有?
此帖出自stm32/stm8论坛

最新回复

TIM_ForcedOC1Config   OC1是什么意思?小白求教。。。  详情 回复 发表于 2017-5-3 19:38
点赞 关注
 

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
“PWM关闭期间管脚电平有时是高电平,有时是低电平”,这是因为你关闭输出的时机不对。如果希望关闭PWM时,引脚为低,则应在PWM输出低时关闭;反之则在PWM输出高时关闭。

如果你使用的是PWM输出模式,每个周期都会有一个更新中断,可以在更新中断关闭PWM输出。

另一个办法是在关闭PWM输出时,设置寄存器转换至强制输出模式。
此帖出自stm32/stm8论坛
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 不错,通过TIM_ForcedOC1Config(TIM3, TIM_ForcedAction_InActive);强制输出低电平解决了,呵呵。
此帖出自stm32/stm8论坛
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 关注,,
此帖出自stm32/stm8论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

5
 
xy2002 发表于 2009-10-28 17:57
不错,通过TIM_ForcedOC1Config(TIM3, TIM_ForcedAction_InActive);强制输出低电平解决了,呵呵。

TIM_ForcedOC1Config  
OC1是什么意思?小白求教。。。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表