raytheonn 发表于 2020-4-2 08:53:59

mylovemcu 发表于 2020-4-2 08:13
不进中断那就用定时器输出PWM信号配置麻烦一点

驱动电机的频率一般就10K以下的频率中断对主函数的影响 ...

感谢回答,我的步进电机的细分是4000,就是4000个脉冲一圈,10K的频率速度有点慢了!

你若安好_清风徐来 发表于 2020-4-2 10:20:31

想都不要想想要产生固定脉冲数量肯定要中断,除非你主函数执行

raytheonn 发表于 2020-4-9 09:42:06

你若安好_清风徐来 发表于 2020-4-2 10:20
想都不要想想要产生固定脉冲数量肯定要中断,除非你主函数执行

貌似是这样的,暂时没有看到好的办法,高级定时器的好像可以,不过最大只能255!

乐天乐 发表于 2020-4-9 10:41:38

要两个定时器,其中一个用单脉冲模式,另一个为slave模式输出pwm

butterflyspring 发表于 2020-4-10 16:31:24

1.使能预装载,这样可以在比较或更新事件中断里计数,计数到达时停掉PWM。 局限性:PWM载波频率不能太快,否则中断执行时间不一定够。 当然也可以中断只计数,中断外判断,但对时间窗口要求很高。
2. 再快一点方法可以使用DMA。 多少个脉冲开辟多少个+1BUFFER。 最后一个用来关掉PWM。 这样PWM载波可以很快。 局限性:RAM占用很多。

以上两个思路供你参考:)

likang1202 发表于 2020-4-10 16:53:14

长见识了

aiherong 发表于 2020-4-11 05:09:45

raytheonn 发表于 2020-4-9 09:42
貌似是这样的,暂时没有看到好的办法,高级定时器的好像可以,不过最大只能255! ...
我若没记错,高级定时器的重复计数寄存器是16位应该不止255吧,还有定时器的级联也可以考虑的
刚才查了一下,记错了,除重复计数器是7~0位有效,其余三个PSC CNT ARR 为16位有效

raytheonn 发表于 2020-4-30 20:25:31

butterflyspring 发表于 2020-4-10 16:31
1.使能预装载,这样可以在比较或更新事件中断里计数,计数到达时停掉PWM。 局限性:PWM载波频率不能太快, ...

谢谢回答!很有参考意义!

raytheonn 发表于 2020-4-30 20:26:23

结帖了,最终还是用了中断,加上提醒加减速,目前效果还行,速度不能太快!
页: 1 [2]
查看完整版本: STM32如何输出固定数量脉冲啊,不要使用中断啊!