有关于PWM关闭之后电平不一的问题

主控芯片:STM32F103RCT6
编程软件:keil5;sourseinsight4
串口调试工具:XCOM V2.5

有关于PWM关闭之后电平不一的问题

在实际的使用过程中,我发现TIM_Cmd(TIMX, DISABLE)仅仅只是关闭了PWM的产生,而并不是将PWM波拉低,PWM的高低决定于关闭前一刻电平的高低,因此,想要得到恒定的高电平或者低电平,可以考虑2种方法:
①利用TIM_SetCompareX()//X为通道编号,例如CH3通道X为3(X为通道编号,例如CH3通道X为3)将占空比调整到100% 或者 0%,这种方法无需关闭PWM,之后还可以调整占空比。
②关闭PWM并强制输出高低电平,这种方法要关掉PWM,打开PWM时需要重新使能通道以及PWM模式,但是不需要重新初始化TIM。(此方法参考:STM32 PWM功能在关闭时GPIO电平不确定的情况

//关闭PWM并强制输出低电平
TIM_Cmd(TIM4, DISABLE);//关闭PWM
TIM_ForcedOC3Config(TIM4, TIM_ForcedAction_InActive);//强制输出低电平

//打开TIM4,CH3的PWM,并设置为PWM1模式
TIM_SelectOCxM(TIM4, TIM_Channel_3, TIM_OCMode_PWM1);
TIM_CCxCmd(TIM4, TIM_Channel_3, TIM_CCx_Enable);
TIM_Cmd(TIM4, ENABLE);
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值