刚开始接触STM32,遇到一个项目中出现在产品调试中出现在关闭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
希望对奋斗在路上的大家有帮助。
同时也分享一些我看的资料在后续的学习中希望能够有所帮助
(stm32直流电机驱动)
http://www.makeru.com.cn/live/1392_1218.html?s=45051
(零基础电子产品设计)
http://www.makeru.com.cn/live/3727_1388.html?s=45051
1小时彻底掌握STM32中断
http://www.makeru.com.cn/live/3523_1666.html?s=45051
(定时器)
http://www.makeru.com.cn/live/1392_1199.html?s=45051
(stm32 温湿度采集)
网友评论