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

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

[复制链接]
攻城狮Melo 发布时间:2023-5-15 21:01
最近有一个项目,需要使用到PWM输出电机速度,开发过程中遇到一个PWM输出时有时无的现象,明明已经配置TIM1输出PWM输出,单独测试也有PWM输出了,但项目大了之后,突然发现明明应该启动的电机不启动,莫名其妙的问题, 然后我查找代码,分析,逻辑上应该是没问题,使用仿真+示波器检测,发现本应该输出的,却没有输出PWM,仿真看寄存器值,确实已经赋值了.
  |3 h. L# p% \. B
" r6 e$ W3 m3 E- E/ K( j
5 d6 g/ I3 @8 ~( C* R
        搜索网上的经验,发现是我的初始化有问题,TIM1是高级定时器,功能多样,初始时没有正确初始,就会出现莫名其妙的问题
, f9 o& y  [9 v* v
  Q# W, d5 K. z. R
4 c3 V2 B" L) d+ j3 M1 Z/ P
正确的PWM初始化有如下变量:6 h" o* |7 s3 H& Z+ Q
  1.     TIM_OCInitTypeDef                 TIM_OCInitStruct;
    . R9 ~" X0 w& k$ v$ `6 c- l" A* _2 Z5 d
  2.     TIM_OCInitStruct.TIM_OCMode       = TIM_OCMode_PWM2;           //脉冲宽度调制模式1( Z& k5 {8 T" P
  3.     //输出极性8 M6 ]; H# ~5 C$ G
  4.     TIM_OCInitStruct.TIM_OCPolarity   = TIM_OCPolarity_High;       //输出极性" X, L, D' P/ r. n
  5.     TIM_OCInitStruct.TIM_OCIdleState  = TIM_OCIdleState_Set;       //在空闲时输出+ X4 e$ ]9 Y2 [- F% N/ F
  6.     TIM_OCInitStruct.TIM_OutputState  = TIM_OutputState_Enable;    //PWM输出使能(正向通道)$ ?% ^) U( J  S0 S0 X% D. V
  7.     TIM_OCInitStruct.TIM_OutputNState = TIM_OutputNState_Disable;  //PWM输出失能(互补通道), M4 [! t# U- O' ?. c
  8.     TIM_OCInitStruct.TIM_OCNPolarity  = TIM_OCNPolarity_High;   //必须$ V6 W: v7 i+ Q
  9.     TIM_OCInitStruct.TIM_OCNIdleState = TIM_OCIdleState_Reset;  //必须6 c8 T/ X9 B+ I( d) M5 s/ e6 {9 {
  10.     TIM_OCInitStruct.TIM_Pulse        = 0;                         //捕获比较的脉冲值
    & q6 M3 Y( a/ ?% H
  11.     TIM_OC1Init(TIM1,&TIM_OCInitStruct);
复制代码

/ a: E& z6 g; [3 X0 O; A  H
5 i( g  F& Q! }# q+ Q. d————————————————* U8 P' n) R7 L' _! M/ B
版权声明:wenkic 小琪
7 O( M: j. Z  Y: D# U* M如有侵权请联系删除
  {1 S* U4 _( K0 i. ?1 L/ w( E2 o2 Y5 d: B8 o' n3 o
0 Y" `0 ]3 J% x- H- s
收藏 评论0 发布时间:2023-5-15 21:01

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版