打印
[STM32F1]

请问STM32F103定时器的PWM输出功能

[复制链接]
2817|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wilkes|  楼主 | 2015-11-14 17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    现在需要多路PWM输出,STM32F103的定时器都有PWM功能,现在问题是一个定时器可以同时输出多路PWM吗?会不会有影响?比如TIM3CH3,TIM3CH4,该如何设置,另外如果一个定时器TIM1用于1ms定时中断,如果同时又要有PWM输出,TIM1CH4,请问定时中断功能和PWM输出会受到影响吗。
    因为做PWM输出时,根据实际情况会不停地调整pwm的脉宽,也就是会不停地改变装载值CCR的值(改变CCR值配置需不需要关闭定时器或者重新触发计数?),在改变设置时会不会对定时器有影响(暂时停止工作或者重新启动计数?)
沙发
wilkes|  楼主 | 2015-11-16 15:35 | 只看该作者
怎么没人关注STM32F10X系列定时器的PWM功能吗?

使用特权

评论回复
板凳
XC456| | 2015-11-16 16:36 | 只看该作者
为什么不用两个定时器?你说不停调整脉宽是说占空比还是周期?不停是停多久?这个很重要,频率过高肯定有影响!F103那么多定时器,换一个不就好了

使用特权

评论回复
地板
gmm2015| | 2015-11-16 16:53 | 只看该作者
1、一个定时器可以同时输出多路PWM (通常每个都有4路PWM),高级定时器可以输出8个PWM
2、一个定时器TIM1用于1ms定时中断,就不要同时要求PWM输出, 貌似做不到这样的功能。

使用特权

评论回复
5
wilkes|  楼主 | 2015-11-17 17:28 | 只看该作者
看了资料,感觉应该都是可以的,我这个需要很多路PWM,几个定时器都用到了,我看库文件中调整脉宽直接用
void TIM_SetCompare2(TIM_TypeDef* TIMx, u16 Compare2)
{
  /* Check the parameters */
  assert_param(IS_TIM_123458_PERIPH(TIMx));

  /* Set the Capture Compare2 Register value */
  TIMx->CCR2 = Compare2;
}
貌似只需要直接修改CCR的值就可以,这样的话,那么一个定时同时输出几路应该没问题,且1个定时器同时产生1ms中断和PWM输出应该也没问题吧?EGR之类的应该不需要再置位

使用特权

评论回复
6
拉克丝| | 2015-11-17 20:01 | 只看该作者
一个定时器用来定时中断,一个用来做PWM

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

147

帖子

0

粉丝