使用带有2个定时器的stm32生​​成无限pwm

时间:2016-07-23 17:50:05

标签: timer stm32 pwm servo

我有10个伺服电机,我想得到所有这些。我使用2个定时器中断不同的定时器频率,为每个引脚产生不同的PWM频率。连接到伺服的引脚,我用每个引脚输出一个伺服, 代码是这样的:

已编辑:

errorObject.modelState['']

生成的pwm适用于端口A中的5个引脚。但是当我增加端口数时,stm32会挂起。 我怎么能增加针脚?

3 个答案:

答案 0 :(得分:2)

如果您的多伺服电机多于PWM通道,那么您可以使用像TL594这样的PWM Genrator IC,在网络上找到它!

答案 1 :(得分:1)

由于您省略了一些重要的细节,例如您的MCU的部件号或所谓的MCVE,我只能在这里猜测。

当您向其添加更多指令时,您的计时器中断可能无法在下一个指令中断之前完成。您可以降低中断频率,但放弃软件中断并使用硬件PWM发生器会更有意义。

STM32通用定时器最多有4个PWM输出。

编辑:在之前的端口中,您提到过您使用的是STM32F103RET。该MCU实际上有24个硬件PWM输出。

请参阅参考手册中的通用计时器章节,或ST应用说明AN2403 STM32 cross-series timer overview中的2.5节,了解如何使用它们。

答案 2 :(得分:1)

你有3个选择!
1)使用编码器ic

2)pwm发生器ic

3)只需使用多臂皮质!