|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
刚开始接触STM32,遇到一个项目中出现在产品调试中出现在关闭PWM输出时,GPIO电平有不确定的情况。在网上查阅资料发现大神们是这样解释的:PWM在一个脉冲没有结束时关闭输出,会导致GPIO电平不确定。) ]4 s7 s+ f& s
解决方法:1、在关闭PWM输出时随即将相应GPIO强制为低(这个高/低看各人的需要)( Z& a8 l1 t) V, R9 k e
t# Y% D2 e9 t; Y2 o+ ~- tiM_Cmd(TIM3 ,DISABLE);//关闭PWM输出' g# q+ ~4 `3 K4 b. Z
+ \# O, u6 k! J8 Q& Z- }- TIM_ForcedOC1Config(TIM3, TIM_ForcedAction_InActive);//将PWM输出强制为低
复制代码
9 {& v; Q. X% D6 @4 s) r 2、在下次打开PWM时使用下面的函数
/ H4 n3 A6 Q5 \% d, y* @
/ o- E: h9 S0 U' q! S- /*因前面使用PWM强制输出为低,此处需要重新打开PWM输出*/# F5 Y* Y; c1 w6 `2 K
1 i8 D7 K- L0 ~* d' c+ Y( ~$ J- TIM_SelectOCxM(TIM3, TIM_Channel_1, TIM_OCMode_PWM1);6 M; _+ n; |9 e
- ) w j1 w3 z' F' d! K
- TIM_CCxCmd(TIM3, TIM_Channel_1, TIM_CCx_Enable);
}" e/ a# H5 { - : m4 E: I# p) B" s+ ^& ~' y7 F* Z) c+ H
- TIM_Cmd(GENERAL_TIM, ENABLE);//使能TIMER3,开始产生PWM
复制代码 2 C# l2 ^( ~$ I: I! h5 _3 o
8 [$ p5 E# k3 J- o' j- _2 m
9 G( n, r" u: |) C3 g |
|