Qt5+STM32F407+步进电机 | 通过电脑控制步进电机实现:6+2通道、速度可变、运动精确步数的教程——简介(1/4)

15 篇文章 0 订阅
8 篇文章 1 订阅

        这次项目的讲解分为4各部分,分别是简介(1/4)、基础知识(2/4)、程序开发(3/4)和联合调试(4/4),这一次内容属于简介(1/4),可以对应文章标题(↑)快速定位目前处于哪一讲解环节。

        首先是一堆废话:

 什么?我打开你的博客是打算学些技术,你就给我看这?嗯???

       哈哈哈,这只是在吐槽我以前在学习交流群里问问题时遇到的情况(估计大多数人都遇到过)(虽然宝宝心里苦,但还是默默地打开了搜索引擎去寻找答案)。很多人以前在遇到比较棘手的问题时,第一反应多是找身边经验丰富的大佬请教(比如说:我)(别误解了,不是说我是大佬,而是说我去请教大佬),毕竟他们走过很多路、试过大量错、踩过无数坑,那肚子里肯定还是有点东(mo)西(shui)的。但很多时候大佬会忙得只是寥寥地点拨几句,如果能从他们的话中听懂叙述、理清逻辑、抓住关键并悟出问题,那问题基本就能得到解决,说实话,其实很多时候还是会有点半迷糊不迷糊的,这时候只有从实践中慢慢去理解了。没有必要为了吃苦而去吃苦,但学到老活到老,不懂的东西太多,想学的东西更多,因此该吃的苦还是必须要吃的,不然怎么会真正学到有价值的知识呢?(每日鸡汤 1/1

       所以我用博客记录我的开(chi)发(ku)历(guo)程(cheng)的目很简单:

       1. 给遇到问题就自力更生默默打开搜索引擎去解决问题的人提供一些思路

       2. 给打算开始类似项目或者想学习相关技术的的人提供一些有价值的参考

       3. 总结归纳自己做过的东西,方便以后做类似开发时快速上手。

       这个项目我会从相对基础的地方开始讲,尽量做到让刚入门的小白都能听懂,但我不会也不能事无巨细,因此更基础的东西还是要(靠大家自己去自力更生默默打开搜索引擎)(bushi)自己去找更基础的教程学习(比如开发用到的C和C++语言等)。

废话不多说,我们就开始吧!

       此次开发用到的设备:带USB的电脑一台(这不是废话吗)、STM32F407ZGT6单片机(国产替代或者其他符合要求(*1)的型号都可)、1~8套 闭环步进电机+配套驱动器(脉冲驱动型)(总线驱动型驱动器请忽略此文)(有钱真好

*1 : 如果需要控制6+2通道的电机,那么片上资源需带有全速(USB1.X)或高速(USB2.0)的USB控制器(有UART+串口通信芯片也可以)、DMA控制器*2(可控制定时器)、定时器*8(可输出PWM脉冲信号)、定时器*4(可配置为主从模式),可用GPIO数量建议不低于80pin。

       这次项目的需求:通过电脑(各类系统都可,只要能装上Qt)的软件界面,将电机控制信息通过某种方式发送给STM32F407单片机;单片机对电脑传递的信息进行理解后驱动自身的硬件去产生脉冲,脉冲信号通过连线被发送到驱动器上,驱动器解析脉冲信号后控制电机运动;并且单片机通过获取一些外设传感器去了解电机的极限运动状态,并将相关的信息实时更新到电脑上。(如图1)

图1

       思考结论:(细节后面说,直接说结果,看不懂不着急,后面会解释)

              1. 电脑软件通信:Qt中QSerialPort类

              2. 上下位机通信协议:USB-CDC模拟串口通信(全速USB 12Mbps,稍微快于UART)

              3. 脉冲生成硬件配置:2路双缓冲DMA+TIM、2路主 32bit从 TIM、2路主 16bit从 TIM、2路中断型 TIM(除了双循环DMA+TIM模式,其他方式由于都需要在两次脉冲间产生中断来更新计步,因此只适合于对精准度要求不特别苛刻的情况,理论上前6个通道的脉冲可以产生无限数量、频率可变的脉冲,一般是驱动丝杠这类脉冲需求可能接近无限多的情景,最后2个通道的脉冲可以产生有限数量、频率不太快的脉冲,一般是驱动有限角度的转轴。

              4. 限位获取:npn或pnp型光电开关 或 带绝对定位的光、磁栅尺。

下一节基础知识(2/4)我会详细讲解这一节所提到的大部分重要关键词。

相关连接:

去简介(1/4)去基础知识(2/4)去程序开发(3/4)去联合调试(4/4)

好用的工具网站推荐


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt5控制STM32F407步进电机的方法如下: 1. 首先,你需要确保你已经安装了QtSTM32的开发环境,并且正确地连接了STM32F407开发板和电机。 2. 在Qt中,可以使用串口通信来控制STM32。你可以使用Qt的QSerialPort类来实现串口通信。首先,你需要设置串口的参数,包括波特率、数据位、校验位等。然后,你可以通过打开串口并发送特定的命令来控制步进电机运动。 3. 在代码中,你可以使用QSerialPort类来打开串口,例如: ```cpp QSerialPort serialPort; serialPort.setPortName("COM1"); // 设置串口号 serialPort.setBaudRate(QSerialPort::Baud9600); // 设置波特率 serialPort.setDataBits(QSerialPort::Data8); // 设置数据位 serialPort.setParity(QSerialPort::NoParity); // 设置校验位 serialPort.setStopBits(QSerialPort::OneStop); // 设置停止位 serialPort.open(QIODevice::ReadWrite); // 打开串口 ``` 4. 接下来,你可以使用串口的write()函数来发送命令给STM32。根据你的需求,你可以发送不同的命令来控制步进电机运动。例如,你可以发送命令来启动电机、改变运动方向、调整电机的速度等。 5. 在Qt中,你可以使用控件的setText()函数来显示文字。通过调用控件的setText()函数,你可以将需要显示的文字作为参数传递进去。在你的情况下,你可以将步进电机的相关信息作为文本显示在适当的控件上。 综上所述,你可以使用Qt的QSerialPort类来实现串口通信,并通过发送特定的命令来控制STM32F407步进电机运动。在需要显示文字的控件上使用setText()函数来显示相关信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值