|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
刚开始接触STM32,遇到一个项目中出现在产品调试中出现在关闭PWM输出时,GPIO电平有不确定的情况。在网上查阅资料发现大神们是这样解释的:PWM在一个脉冲没有结束时关闭输出,会导致GPIO电平不确定。
9 \% u2 H# {' m" R# s. N1 v 解决方法:1、在关闭PWM输出时随即将相应GPIO强制为低(这个高/低看各人的需要)
3 L4 T t9 r" O; Q& [
% ?5 f r X( M- tiM_Cmd(TIM3 ,DISABLE);//关闭PWM输出6 e" e M( G& O: y& c( j
- 8 b( H! a g2 a; E
- TIM_ForcedOC1Config(TIM3, TIM_ForcedAction_InActive);//将PWM输出强制为低
复制代码 3 `- y) ]. f6 n$ L' P
2、在下次打开PWM时使用下面的函数3 h, L9 @4 T: g
; k6 w) B. \% R: L _, O; x- /*因前面使用PWM强制输出为低,此处需要重新打开PWM输出*/2 V! j3 O% e6 v; z5 z
- 4 A6 h) s' C8 s, s4 T( `
- TIM_SelectOCxM(TIM3, TIM_Channel_1, TIM_OCMode_PWM1);: a& w5 ^: m$ a
) I' x5 A6 _9 x ?: j C- TIM_CCxCmd(TIM3, TIM_Channel_1, TIM_CCx_Enable);) z' f0 ~7 M) h. K l2 q. a6 R6 w/ w
( ^0 g [$ ]8 p# ]1 l- TIM_Cmd(GENERAL_TIM, ENABLE);//使能TIMER3,开始产生PWM
复制代码
' ^, h, m9 K9 {. A
5 k$ K% J4 l2 n3 z( H& m4 ?) ~+ S
8 e% m* w/ P3 |4 y1 z4 i3 n- n |
|