|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
刚开始接触STM32,遇到一个项目中出现在产品调试中出现在关闭PWM输出时,GPIO电平有不确定的情况。在网上查阅资料发现大神们是这样解释的:PWM在一个脉冲没有结束时关闭输出,会导致GPIO电平不确定。
$ Q9 g0 f( { I$ G3 U) c# @ 解决方法:1、在关闭PWM输出时随即将相应GPIO强制为低(这个高/低看各人的需要)
4 L# @- \: {6 a' P+ P A6 ^# }. |+ V0 f0 S
- tiM_Cmd(TIM3 ,DISABLE);//关闭PWM输出
) R/ y6 d4 B$ s1 x2 X0 v - . K8 s8 W; M( M, V* Y2 T
- TIM_ForcedOC1Config(TIM3, TIM_ForcedAction_InActive);//将PWM输出强制为低
复制代码
. N! G- W a' W6 P' z7 I 2、在下次打开PWM时使用下面的函数- u" |1 j- z% ~0 j( h, [5 O( R
5 f1 J1 Z0 T0 e. k' U8 _' t
- /*因前面使用PWM强制输出为低,此处需要重新打开PWM输出*/
, o2 d; q# n3 { E: p0 G - ) d1 Q2 j0 v" V+ c3 l1 T4 T
- TIM_SelectOCxM(TIM3, TIM_Channel_1, TIM_OCMode_PWM1);/ L/ [9 A$ ~. U$ M J" o) k
3 s' z. G$ } ]. g% F# I! r! q5 N- TIM_CCxCmd(TIM3, TIM_Channel_1, TIM_CCx_Enable);
# D! j; T/ V+ p1 ] - + B6 `0 F7 J( e1 F3 n+ w2 k
- TIM_Cmd(GENERAL_TIM, ENABLE);//使能TIMER3,开始产生PWM
复制代码 & `+ S7 \/ \ v" L0 K' C
' M e* w6 m# \& P0 F, o. N U
) O# g) W) C3 a |
|