PC 机串口通信模块的设计(内附网盘分享:代码(标准库))
摘要:本设计基于STM32F103C8T6芯片开发了USART串口通信模块,实现与PC机的双向数据传输。系统采用115200波特率的USART1接口,通过CH340G芯片实现USB转TTL通信,并配备0.96寸OLED显示屏实时显示收发数据。
1. 设计要求
设计使用STM32的USART串口与PC机进行数据收发的模块,在PC机上运行串口调试助手时,该模块可与PC机进行数据双向传输。具体功能包括:
接收PC机发送的以@开头、\r\n结尾的数据包;
在OLED屏分区显示收发数据内容;
自动发送响应信息"received\r\n"给PC机;
实时更新显示内容;
2. 硬件设计
本设计使用STM32F103系列的STM32F103C8T6芯片作为主控制器,系统的硬件电路如图1所示。

图1 系统的电路原理图
2.1 系统元器件参数
核心控制器:
STM32F103C8T6,基于ARM Cortex-M3内核,主频72MHz,64KB Flash,20KB RAM
串口通信模块:
USART1:波特率115200,8位数据位,1位停止位,无校验位;
CH340G USB转串口芯片,提供稳定的USB转TTL通信;
显示模块:
0.96寸OLED显示屏,SSD1306驱动芯片,128×64分辨率,I2C接口;
时钟电路:
8MHz外部晶振,提供系统主时钟;
32.768kHz外部晶振,提供RTC时钟源;
2.2 系统工作原理
系统通过USART1与PC机建立串口通信连接,当PC机发送符合格式要求的数据包时,STM32通过中断方式接收数据,解析数据包内容,并在OLED屏幕上实时显示。同时,系统自动向PC机发送确认响应,实现双向通信功能。
3. 软件设计
3.1 主程序设计
主程序工作过程描述:
1. 初始化OLED显示屏;
2. 初始化串口通信模块;
3. 在OLED上显示固定的标题文字;
4. 进入主循环,持续检测数据接收标志;
5. 当接收到有效数据时,更新OLED显示并发送响应;

图2 主程序流程图
3.2 OLED显示子程序设计
OLED_ShowString()工作过程:
1. 接收行号、列号和字符串指针参数;
2. 遍历字符串中的每个字符;
3. 调用OLED_ShowChar()逐个显示字符;
4. 遇到字符串结束符'\0'时停止;

图3 OLED显示子程序流程图
3.3 串口发送子程序设计
串口发送函数组实现:
- serial_sendbyte(): 发送单个字节,等待发送完成;
- serial_sendstring(): 发送字符串,遍历直到遇到'\0'
- serial_sendarray(): 发送字节数组,指定长度;
- serial_sendnumber(): 发送数字,转换为字符串形式;
- serial_printf(): 格式化输出,支持可变参数;

图4 串口发送子程序流程图
3.4 串口中断处理子程序设计
USART1_IRQHandler()工作过程:
采用状态机方式解析数据包,状态转移如下:
状态0: 等待起始符'@'
状态1: 接收数据内容,遇到'\r'进入状态2
状态2: 等待结束符'\n',完成数据包接收

图5 串口中断处理子程序流程图
- 测试结果
OLED屏幕正确分区显示"txpacket"和"rxpacket"标识
接收数据实时显示在指定区域
PC端正确收到"received\r\n"响应信息
什么都没发送,初始状态:

第一次发送“STM32”


第二次发送“F103”


第三次发送“STM32F103”


系统稳定运行,无数据丢失现象
5.main 函数主要代码(更多详细看网盘分享)
int main(void)
{
OLED_Init();
serial_void();
OLED_ShowString(1,2,"txpacket");
OLED_ShowString(2,2,"rxpacket");
while(1)
{
if(serial_rxflag==1)
{
OLED_ShowString(4,2," ");
OLED_ShowString(4,2,serial_rxpacket);
serial_rxflag=0;
serial_sendstring("recevied\r\n");
}
}
}
6.总结
本实验成功实现了STM32与PC机的双向串口通信系统,具备以下特点:
可靠的数据包解析机制,使用状态机确保数据完整性;
实时的OLED显示更新,提供直观的数据监控界面;
灵活的串口发送功能,支持多种数据格式输出;
稳定的中断处理,保证系统响应及时性;
系统具有良好的实用性和扩展性,可为后续嵌入式通信应用开发提供基础框架。
通过网盘分享的文件:PC 机串口通信模块的设计
链接: https://pan.baidu.com/s/19hxp5fX8u5rh9y1wgS-p2g?pwd=iaw2 提取码: iaw2
更多推荐
所有评论(0)