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

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

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


        搜索网上的经验,发现是我的初始化有问题,TIM1是高级定时器,功能多样,初始时没有正确初始,就会出现莫名其妙的问题


正确的PWM初始化有如下变量:
  1.     TIM_OCInitTypeDef                 TIM_OCInitStruct;
  2.     TIM_OCInitStruct.TIM_OCMode       = TIM_OCMode_PWM2;           //脉冲宽度调制模式1
  3.     //输出极性
  4.     TIM_OCInitStruct.TIM_OCPolarity   = TIM_OCPolarity_High;       //输出极性
  5.     TIM_OCInitStruct.TIM_OCIdleState  = TIM_OCIdleState_Set;       //在空闲时输出
  6.     TIM_OCInitStruct.TIM_OutputState  = TIM_OutputState_Enable;    //PWM输出使能(正向通道)
  7.     TIM_OCInitStruct.TIM_OutputNState = TIM_OutputNState_Disable;  //PWM输出失能(互补通道)
  8.     TIM_OCInitStruct.TIM_OCNPolarity  = TIM_OCNPolarity_High;   //必须
  9.     TIM_OCInitStruct.TIM_OCNIdleState = TIM_OCIdleState_Reset;  //必须
  10.     TIM_OCInitStruct.TIM_Pulse        = 0;                         //捕获比较的脉冲值
  11.     TIM_OC1Init(TIM1,&TIM_OCInitStruct);
复制代码


————————————————
版权声明:wenkic 小琪
如有侵权请联系删除


收藏 评论0 发布时间:2023-5-15 21:01

举报

0个回答

所属标签

相似分享

官网相关资源

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