打印
[其他ST产品]

STM32 PWM功能在关闭时GPIO电平不确定的情况

[复制链接]
226|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,状态是啥,我还真没这么试过

使用特权

评论回复
5
Charlotte夏| | 2023-6-13 16:42 | 只看该作者
解决方法好像是比较常用的吧

使用特权

评论回复
6
Carina卡| | 2023-6-13 18:52 | 只看该作者
不过,为啥PWM没输出完就给关闭了呢?

使用特权

评论回复
7
Emily999| | 2023-6-14 06:05 | 只看该作者
正常就直接通过程序设置高或者低就好了

使用特权

评论回复
8
alxd| | 2023-6-14 07:20 | 只看该作者
强制高或者低之后还需要重新配一下PWM输出是吧

使用特权

评论回复
9
Carmen7| | 2023-6-14 09:35 | 只看该作者
PWM一般也不会给关闭了吧

使用特权

评论回复
10
Alina艾| | 2023-6-14 10:34 | 只看该作者
你可以把PWM的输出设置为0,状态就是默认的状态了,好像

使用特权

评论回复
11
Betty996| | 2023-6-14 13:56 | 只看该作者
这个属实有意义,强制输出高或者低之后,还需要重启PWM才行

使用特权

评论回复
12
MessageRing| | 2023-6-14 23:22 | 只看该作者
关掉时候强制把电平控制住不就行了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

914

主题

2385

帖子

4

粉丝