[其他ST产品] STM32 PWM功能在关闭时GPIO电平不确定的情况

[复制链接]
1555|11
 楼主| elephant00 发表于 2023-6-8 10:04 | 显示全部楼层 |阅读模式
  刚开始接触STM32,最近在做一个项目时用到其中的PWM功能。在产品调试中出现在关闭PWM输出时,GPIO电平有不确定的情况。在网上查阅资料发现大神们是这样解释的:PWM在一个脉冲没有结束时关闭输出,会导致GPIO电平不确定。
      解决方法:1、在关闭PWM输出时随即将相应GPIO强制为低(这个高/低看各人的需要)
tiM_Cmd(TIM3 ,DISABLE);//关闭PWM输出
TIM_ForcedOC1Config(TIM3, TIM_ForcedAction_InActive);//将PWM输出强制为低
2、在下次打开PWM时使用下面的函数

/*因前面使用PWM强制输出为低,此处需要重新打开PWM输出*/
TIM_SelectOCxM(TIM3, TIM_Channel_1, TIM_OCMode_PWM1);
TIM_CCxCmd(TIM3, TIM_Channel_1, TIM_CCx_Enable);
                           
TIM_Cmd(GENERAL_TIM, ENABLE);//使能TIMER3,开始产生PWM
      **对奋斗在路上的大家有帮助。
Betty1299 发表于 2023-6-13 12:51 | 显示全部楼层
你可以通过程序配置高或者低的
B1lanche 发表于 2023-6-13 13:59 | 显示全部楼层
按理来说,你PWM配置的时候就有停止输出是高还是低的状态的
Estelle1999 发表于 2023-6-13 15:37 | 显示全部楼层
在脉冲没结束的时候关闭PWM,状态是啥,我还真没这么试过
Charlotte夏 发表于 2023-6-13 16:42 | 显示全部楼层
解决方法好像是比较常用的吧
Carina卡 发表于 2023-6-13 18:52 | 显示全部楼层
不过,为啥PWM没输出完就给关闭了呢?
Emily999 发表于 2023-6-14 06:05 | 显示全部楼层
正常就直接通过程序设置高或者低就好了
alxd 发表于 2023-6-14 07:20 | 显示全部楼层
强制高或者低之后还需要重新配一下PWM输出是吧
Carmen7 发表于 2023-6-14 09:35 | 显示全部楼层
PWM一般也不会给关闭了吧
Alina艾 发表于 2023-6-14 10:34 | 显示全部楼层
你可以把PWM的输出设置为0,状态就是默认的状态了,好像
Betty996 发表于 2023-6-14 13:56 | 显示全部楼层
这个属实有意义,强制输出高或者低之后,还需要重启PWM才行
MessageRing 发表于 2023-6-14 23:22 | 显示全部楼层
关掉时候强制把电平控制住不就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1031

主题

3946

帖子

7

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