STM32 串口控制电机运行系统

本项目基于STM32单片机,通过串口通信接收指令,实现对电机的启动/停止、正反转、速度调节等功能。

串口接收指令: 命令(N,F,S,R,V)+速度值

电机控制功能:启动(默认速度50)、停止、正转、反转、自定义调速。

串口反馈:执行指令后返回状态信息。

电路连接与结果如下图:

功能:控制电机方向(GPIO)与速度(PWM占空比)

作用:根据接收到的命令和速度参数来控制电机的运行状态。

使能GPIOA时钟,配置PA4/PA5为推挽输出(方向控制)。

调用 PWM_Init() 初始化PWM输出(TIM2_CH3)。

配置USART1参数:波特率9600、8数据位、1停止位、无校验。

serial_sendByte作用:通过串口发送一个字节的数据。

serial_sendArray作用:通过串口发送一个数组的数据。

serial_sendString作用:通过串口发送一个字符串。

serial_sendNumber作用:通过串口发送一个数字的字符串表示。

Serial_GetRXFlag作用:获取串口接收标志。

Serial_GetRXData作用:获取串口接收到的数据。

USART1_IRQHandler作用:USART1 串口中断处理函数

功能:生成稳定PWM波,控制电机转速。

使能TIM2与GPIOA时钟。

配置PA2为复用推挽输出。

配置TIM2时基:预分频 72-1 、周期 1000-1 。

配置PWM模式、占空比初始值0。

通过串口接收发送的指令,解析指令后控制电机的运行状态(启动、停止、正转、反转、调速),并在OLED显示屏上显示程序状态。

本项目实现了串口指令→电机控制的完整流程,涵盖硬件驱动、中断处理、指令解析等核心知识点。