今日尝试编写一个例程,用上位机Python写个代码打开串口接收一下STM32发来的数据:
文章提供测试代码讲解、测试效果图、整体测试工程下载:
目录
设定python软件包镜像源库:
安装pyserial库:
编程接受数据:
接收效果截图:
设定python软件包镜像源库:
有些镜像源的网址下载的库有些,有些已经没法使用:
就比如我这个库的网址它是没法正常下载包的:这就需要手动添加一些源:
添加清华镜像源网站:
如图四个步骤就能添加清华大学的镜像源了:
Simple Index
记住这个网站,以后都用这个网站进行安装包就好了
安装pyserial库:
打开文件设置:
选择当前我们使用的Python解释器,有多个解释器的要注意!
按加号开始搜索安装库:
搜索 pyserial,然后点安装软件包就好了:
我选第二个安装是成功的,第一个镜像源是下载不成功的!第二个是清华的网址
我这里指定了3.2的版本:
编程接受数据:
import serial
import time# 配置串口参数
serial_port = 'COM5' # 根据实际情况更改COM端口号
baud_rate = 115200 # STM32设置的波特率# 打开串口
ser = serial.Serial(serial_port, baud_rate, timeout=1)# 检查串口是否打开
if ser.is_open:print(f"串口 {serial_port} 已打开")
else:print(f"无法打开串口 {serial_port}")exit()try:while True:# 读取串口数据if ser.in_waiting > 0: # 检查是否有数据可读data = ser.readline().decode('utf-8').rstrip() # 读取一行数据并去除末尾的换行符和空格print(f"接收到数据: {data}")# 可以在这里添加处理接收到的数据的代码# 为了避免过于频繁地轮询串口,可以添加一个小的延时time.sleep(0.1)except KeyboardInterrupt:# 当用户按下Ctrl+C时退出循环print("用户中断,程序退出")finally:# 关闭串口ser.close()print("串口已关闭")
接收效果截图:
这里用串口助手获取串口号以及验证接收:
接受的就是STM32发来的数据
配置时注意波特率、停止位之类的串口约定