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

STM32如何输出固定数量脉冲啊,不要使用中断啊!

[复制链接]
raytheonn 提问时间:2020-4-1 09:00 /
阅读主题, 点击返回1楼
收藏 评论18 发布时间:2020-4-1 09:00
18个回答
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占用很多。

以上两个思路供你参考

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

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
结帖了,最终还是用了中断,加上提醒加减速,目前效果还行,速度不能太快!
12
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版