急问关于定时器的PWM输出停止后如何控制输出电平高低

[复制链接]
14005|19
 楼主| mousie 发表于 2011-4-11 14:31 | 显示全部楼层 |阅读模式
用定时器实现PWM输出,在停止输出脉冲后,管脚上的输出电平时高时低,好像和脉冲的输出频率有关。想请问一下如何让管脚在不输出脉冲时始终维持高电平或者低电平状态啊?我将管脚定义为复用开漏输出,尝试在TIM_Cmd(TIM3, DISABLE)之后用GPIO_WriteBit写电平,好像不管用。
香水城 发表于 2011-4-11 15:16 | 显示全部楼层
2种办法:1)控制好停止输出脉冲的时间。2)停止输出脉冲后切换到强制输出模式。

这个问题以前讨论过,你可以搜索一下。
yybj 发表于 2011-4-11 18:13 | 显示全部楼层
很眼熟的问题,以前应该讨论过
 楼主| mousie 发表于 2011-4-12 13:11 | 显示全部楼层
:L 能提供几个搜索关键词吗?实在是找不到啊?当然要是能提供链接就更好了哈
hhbl312288 发表于 2011-4-12 13:20 | 显示全部楼层
想赚积分 发帖能赚吗
 楼主| mousie 发表于 2011-4-12 14:43 | 显示全部楼层
本帖最后由 mousie 于 2011-4-12 15:45 编辑

:L 我还以为已经有人回答了呢:'(
想问下定时器的强制输出没有现成的库函数可用吗?我明白意思但是不太会用啊?
香水城 发表于 2011-4-12 17:15 | 显示全部楼层
airwill 发表于 2011-4-13 11:07 | 显示全部楼层
2种办法:1)控制好停止输出脉冲的时间。2)停止输出脉冲后切换到强制输出模式。

这个问题以前讨论过,你可以搜索一下。
香水城 发表于 2011-4-11 15:16


这里的说法欠妥的.
stm32 的 PWM 有个更强的 PWM 状态控制信号. 就是设置捕获/比较使能寄存器 CCER.
不要随意用 TIM_Cmd(TIMx, DISABLE)  开关定时器的时钟
 楼主| mousie 发表于 2011-4-15 10:11 | 显示全部楼层
8# airwill

有直接对应得库函数吗?还有为什么TIM_Cmd不能随意用呢?
zchong 发表于 2012-5-18 11:15 | 显示全部楼层
这里的说法欠妥的.
stm32 的 PWM 有个更强的 PWM 状态控制信号. 就是设置捕获/比较使能寄存器 CCER.
不要随意用 TIM_Cmd(TIMx, DISABLE)  开关定时器的时钟
airwill 发表于 2011-4-13 11:07


这个靠谱,每次关闭后都是低电平
EAMCU 发表于 2012-5-18 12:35 | 显示全部楼层
如果是使用TIM1或者TIM8,
可以使用void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState)来开关PWM输出
只要设置好了了有效电平,空闲电平,
可以用上述命令有效开关
EAMCU 发表于 2012-5-18 12:38 | 显示全部楼层
实际上,经过试验,用于TIM2之类的普通TIM也一样可以,只不过固件库里说这个函数适用于TIM1, 8, 15, 16 or 17
无帝老三 发表于 2015-8-31 18:56 | 显示全部楼层
zchong 发表于 2012-5-18 11:15
这个靠谱,每次关闭后都是低电平

请教一下,怎么设置的?              TIM1->CCER |= TIM_CCER_CC1P;                       
这样后为什么还是高电平?
麻烦您了
zchong 发表于 2015-9-1 11:24 | 显示全部楼层
无帝老三 发表于 2015-8-31 18:56
请教一下,怎么设置的?              TIM1->CCER |= TIM_CCER_CC1P;                       
这样后为什么还是高电平?
麻烦您了 ...

TIM_CCxCmd这个函数看看
tangmix 发表于 2015-9-2 10:36 | 显示全部楼层
STM8 PWM寄存器设置里面就有控制停止的时候IO口是什么电平的,TIM2_CCER1 =0;  想必STM32应该也有的吧
350182617 发表于 2015-9-3 13:48 | 显示全部楼层
我的解决方法是赋值CCR寄存器,调整占空比,0%输出低电平,100%输出高电平,可以快速定位输出状态
稳稳の幸福 发表于 2016-7-15 17:22 | 显示全部楼层
停止后,配置端口为输出高电平
zhuomuniao110 发表于 2016-7-15 22:02 | 显示全部楼层
停止后立马调用IO功能的输出函数。
cy0919 发表于 2016-12-1 18:40 | 显示全部楼层
如果想简便,可以采用高级定时器,高级定时器不会出现这个问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

63

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部