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

关于072RB定时器输出PWM问题

[复制链接]
woshilee 提问时间:2015-7-25 15:46 /
TIM1输出PWM时必须有TIM_CtrlPWMOutputs(TIM1, ENABLE);,而TIM3不用这条指令就可以直接输出PWM,并且TIM_CtrlPWMOutputs(TIM3, DISABLE);还关闭不了PWM输出,请问这是为什么呢?

收藏 1 评论13 发布时间:2015-7-25 15:46

举报

13个回答
安臣 回答时间:2015-7-25 15:53:29
我用库不一样 。 我的建议是楼主可以在看看库函数的代码  然后再看看 寄存器
woshilee 回答时间:2015-7-25 15:56:16
安臣 发表于 2015-7-25 15:53
我用库不一样 。 我的建议是楼主可以在看看库函数的代码  然后再看看 寄存器 ...

void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_TIM_LIST2_PERIPH(TIMx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));
  if (NewState != DISABLE)
  {
    /* Enable the TIM Main Output */
    TIMx->BDTR |= TIM_BDTR_MOE;
  }
  else
  {
    /* Disable the TIM Main Output */
    TIMx->BDTR &= (uint16_t)(~((uint16_t)TIM_BDTR_MOE));
  }  
}
woshilee 回答时间:2015-7-25 16:10:20
woshilee 发表于 2015-7-25 15:56
void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState)
{
  /* Check the parameters * ...

C:\Documents and Settings\Administrator\桌面
TIM1.JPG
TIM3.JPG
woshilee 回答时间:2015-7-25 16:11:55

原来TIM3没有那个寄存器
creep 回答时间:2015-7-25 17:19:10
woshilee 发表于 2015-7-25 16:11
原来TIM3没有那个寄存器

那个寄存器只有高级定时器才有的。
woshilee 回答时间:2015-7-25 21:53:05
creep 发表于 2015-7-25 17:19
那个寄存器只有高级定时器才有的。

恩,但是库里和手册里没有直接说
creep 回答时间:2015-7-25 22:16:11
woshilee 发表于 2015-7-25 21:53
恩,但是库里和手册里没有直接说

这个手册肯定是有描述的。至于库函数的注释肯定也说明了。 timer.jpg
如果你使能了参数检查:【STM32F303开发】+库函数参数检查  ,程序就会检测到你调用的参数错误了,这个在各个系列的库里都有参数检测,可能命名不太一样。
timer.jpg
阳光_~~ 回答时间:2015-7-26 02:48:52
先把文档研究透先,2个TIMER还是不一样的,TIM3是最简单的不涉及到互补驱动,如果只是简单的PWM驱动就不要用TIM1,TIM1很繁琐。至于你说的TIM3无法关断PWM,好像TIM3真没MOE这个位,你可以尝试改变CCR的值来ENABLE和DISABLE,我经常这样干
你好我好大家好! 回答时间:2015-7-26 15:55:10
这么奇怪?
12下一页

所属标签

相似问题

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