STM32F302CBT6+CubeMx+陶晶驰控制电机(一)

本文介绍了如何通过HMI智能串口屏的按键控制STM32F302CBT6单片机,实现电机的启动与停止。详细讲述了硬件连接步骤,包括串口配置和电机驱动,以及提供了一个调试视频链接供读者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介:通过淘晶驰串口屏按键,点击屏幕 ,单片机进行相应的操作,电机运转。(能通过按下串口屏图片来控制电机运转)

一、器材介绍

1、HMI智能串口屏

串口屏的图形化编辑是开发利器,参数如上。
串口屏可以通过简单的编辑达到非常理想的效果。

2、STM32单片机

(1)产品概述

       STM32F302CBT6是一款32位ARM® Cortex® -M4微控制器单元, 具有数字信号处理 (DSP)与浮点运算单元 (FPU). 这款微控制器提供2个高速12位模数转换器, 4个比较器, 2个运算放大器, 1条DAC通道, 1个低功耗RTC, 5个通用16位定时器, 1个通用32位定时器. 该器件还具有多种标准和高级通信接口, 多达两个I²C, 多达三个SPI和三个USART, 多达两个UART, CAN和USB. 为了达到音频级别的准确度, I²S外设可以通过外部PLL进行时钟控制. 集成高速嵌入式存储器, 丰富的增强型I/O和外设, 连接至2条APB总线.

  • 复位与电源管理 - 上电/掉电复位 (POR/PDR)
  • 可编程电压检测器
  • 低功耗 - 休眠, 关断与待机
  • VBAT电源, 用于RTC与备份寄存器
  • 互连矩阵
  • 日历RTC, 带警报, 并定期从停止/待机模式中唤醒
  • 串行线调试, Cortex®-M4带有FPU ETM, JTAG
  • 96位独特ID

应用:电机驱动与控制, 计算机和计算机周边, 通信与网络, 音频

(2)电路原理图

(3)安装包、数据手册见资源

(4)官网地址

STM32F302CB - 带DSP和FPU的主流混合信号ARM Cortex-M4 MCU,具有128 KB Flash、72 MHz CPU、MPU、CCM、5 MSPS 12位ADC、PGA和比较器 - 意法半导体STMicroelectronics

3、直流无刷电机

(1)参数说明

(2)驱动器参数

(3)驱动接口

(4)线路连接

二、硬件连接

串口屏一共4个口:RX、TX、5V、GND
1.单片机初始化USART3,对应STM32F3板子上PB10、PB11。
2.记得设置单片机跟串口屏的波特率相同,我将他们两个都设置为115200

三、实物连接图

四、调试视频

百度网盘

链接:https://pan.baidu.com/s/11ZSJkXRdhrOeEnvWDZ_Wuw 
提取码:haha

五、实验效果

按下按键后控制电机转动、停止

六、代码

过程代码在下面文章中写

### 关于张大头42步进闭环上位机的相关资料 对于张大头42步进闭环系统的上位机开发,通常涉及硬件选型、通信协议设计以及软件编程等多个方面。针对该特定型号的设备,在构建控制系统时可以考虑采用具备强大处理能力的单片机作为核心控制器[^1]。 #### 控制器选择 下位机的选择决定了整个系统的性能基础。在实际应用案例中,有开发者选择了STM32F407作为主控芯片来实现对电机的有效驱动与反馈信号采集功能。此款微控制器拥有丰富的外设资源和支持多种接口标准的能力,非常适合用于此类精密运动控制场合。 #### 显示配置 为了方便操作人员监控系统状态并调整参数设置,可配备易于使用的图形化界面工具。例如提到过的陶晶驰串口就是个不错的选择;它不仅支持基本的文字和图像展示,还允许自定义按钮布局等功能,极大地方便了用户的交互体验。 #### 上位机软件开发 关于具体的上位机程序编写指南,则需依据所选定的操作平台和个人偏好而定。般而言,会涉及到以下几个要点: - **通信方式**:确保上下位机能稳定可靠地交换数据至关重要。这里推荐使用UART(通用异步收发传输器),即常说的“串行端口”,因为它具有结构简单、成本低廉等特点。 - **命令解析**:当接收到由下位传来的原始字节流之后,必须按照既定规则将其转换成有意义的信息片段以便进步处理。这可能包括但不限于位置坐标读取、速度设定值更新等动作。 - **用户界面搭建**:考虑到最终产品的易用性和美观度,建议利用成熟的GUI框架快速创建直观友好的前端页面。Python中的Tkinter库或是Qt Creator都是很好的选项之。 ```python import serial from tkinter import Tk, Label, Button def connect_to_device(port_name='/dev/ttyUSB0', baud_rate=9600): ser = serial.Serial(port_name, baud_rate) return ser root = Tk() label_status = Label(root, text="Not Connected") button_connect = Button(root, text='Connect Device', command=lambda: label_status.config(text=str(connect_to_device()))) button_connect.pack(); label_status.pack() root.mainloop() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宸静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值