完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想用STM32发送 特定频率,数量固定的脉冲来控制步进电机,但是这个 脉冲 是很多组 频率不同数量不同的,比如说 以1KHZ的频率发送200个脉冲(这里为方便记为1组数据),电机转动完成后,再发送 2KHZ、300个脉冲(2组数据),后面还有许多。任务是控制3个步进电机的,每个步进电机的都有一套上述的数据。 目前的问题是:
如何让这3个步进电机运动的时候每组数据是一一对应的,比如 电机1 1KHZ、200个脉冲;电机2 2KHZ、400个脉冲;电机3 500HZ、100个脉冲。也即 电机1 以1KHZ、转动200个脉冲,同时电机2 以2KHZ、400个脉冲,同时电机3 以500HZ、100个脉冲。 各位大佬还请多多指导啊 |
|
相关推荐
4个回答
|
|
1-简单点可以这样做,对于STM32来说PWM的频率决定于ARR寄存器,改变ARR寄存器频率就改变了,没问题吧?
2-按照某频率发送,可以产生更新事件中断,就是该频率下发了一个周期的时候产生的中断事件,进去后对中断计数,满足你的该频率脉冲数后,在中断中将ARR寄存器数值修改为下一个频率,同时对应的脉冲数量也做更新就可以了。 3-3个电机就要有3个中断,只要保证中断中处理时间短,不要超过最高频率对用的周期时间就没有问题。 4-优化的方案就是借助DMA对脉冲数量计数,不必每一个脉冲都进中断了。 5-还有一种优化方案就是利用主从定时器(STM32),从定时器对主定时器的脉冲数量计数,到达要求后触发中断,进去后更新主定时器ARR和从定时器计数的数值,但是受限于硬件,需要连接特定的引脚,并且也支持不了几组电机,优点是:效率确实高。
最佳答案
|
|
1 条评论
|
|
没有人吗?
|
|
|
|
是说一个端口发送3种不同频率的数据吗?
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1168 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1105 浏览 2 评论
2203 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1297 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1718 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 01:16 , Processed in 0.861153 second(s), Total 103, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号