你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32F1 TIM1 输出PWM 时有时无的输出经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-15 21:01
最近有一个项目,需要使用到PWM输出电机速度,开发过程中遇到一个PWM输出时有时无的现象,明明已经配置TIM1输出PWM输出,单独测试也有PWM输出了,但项目大了之后,突然发现明明应该启动的电机不启动,莫名其妙的问题, 然后我查找代码,分析,逻辑上应该是没问题,使用仿真+示波器检测,发现本应该输出的,却没有输出PWM,仿真看寄存器值,确实已经赋值了.
4 n7 A' V" r8 O1 G8 N0 t) l; q$ _; W8 u8 u, A

2 D% f& Y( y  E  z& S% o5 G        搜索网上的经验,发现是我的初始化有问题,TIM1是高级定时器,功能多样,初始时没有正确初始,就会出现莫名其妙的问题# g4 l! g' _* a- V  d
" c% C0 d: p+ d' v3 e

* D+ Z' X" l) `: E( a" E% G' @正确的PWM初始化有如下变量:
+ r$ p8 ~5 v/ K4 L' D+ g
  1.     TIM_OCInitTypeDef                 TIM_OCInitStruct;
    0 M8 g2 _9 f& C! i; w1 ^3 F" d$ A' C, J
  2.     TIM_OCInitStruct.TIM_OCMode       = TIM_OCMode_PWM2;           //脉冲宽度调制模式1
    1 Z) `5 P+ I2 a  g) `+ {2 I" ?, i
  3.     //输出极性
    ! s0 y1 J" N: c
  4.     TIM_OCInitStruct.TIM_OCPolarity   = TIM_OCPolarity_High;       //输出极性, H1 `# f" n) n0 `1 a, u: g
  5.     TIM_OCInitStruct.TIM_OCIdleState  = TIM_OCIdleState_Set;       //在空闲时输出
    ( u! `% m2 d+ w  j$ \6 f0 k8 ~4 I( e
  6.     TIM_OCInitStruct.TIM_OutputState  = TIM_OutputState_Enable;    //PWM输出使能(正向通道)
    $ X3 J& g- m3 t: H
  7.     TIM_OCInitStruct.TIM_OutputNState = TIM_OutputNState_Disable;  //PWM输出失能(互补通道)
    6 d8 ?! r5 O1 z& c9 c& ~, W
  8.     TIM_OCInitStruct.TIM_OCNPolarity  = TIM_OCNPolarity_High;   //必须
      d( q  T+ q0 ^$ j, e4 N; E
  9.     TIM_OCInitStruct.TIM_OCNIdleState = TIM_OCIdleState_Reset;  //必须
    & w7 M2 u+ |8 o- [7 [& w' w
  10.     TIM_OCInitStruct.TIM_Pulse        = 0;                         //捕获比较的脉冲值
    7 s9 I: l+ }$ Z7 o
  11.     TIM_OC1Init(TIM1,&TIM_OCInitStruct);
复制代码

: C& f3 Y: X! m$ f1 @& @
; ]  M. c7 ~  ]5 M. `" q3 B————————————————
% v- e& p" j" f- Y8 N9 t" O版权声明:wenkic 小琪
9 n. a! P1 ]  A# h/ Y. R如有侵权请联系删除
% C/ v* U( m0 K6 n+ g7 \3 h/ W+ n, ^& l6 U, p1 B1 j- V+ b
3 m+ O( ^/ G- d1 S0 v2 p
赞 收藏 评论0 发布时间:2023-5-15 21:01

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版