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显示屏上显示程序状态。
本项目实现了串口指令→电机控制的完整流程,涵盖硬件驱动、中断处理、指令解析等核心知识点。