【Python】串口通信的几种方式
目前项目中所使用的基本分两种,一种是直接串口通信,通过python发送串口指令进行通信,第二种是adb通信,通过adb指令进行通信。
一、串口通信
1.串口信息
import serial import serial.tools.list_ports if __name__ == "__main__": port_a = "COM19" #通过pc的设备管理器查看串口号 bps = 115200 #串口速率 Timeout = 5 #串口延时 #打开串口 ser_a = serial.Serial(port_a, bps, timeout = Timeout) #将串口返回值输入到函数 test(ser_a)
2.将串口信息传入函数
通过serial库打开串口,并将返回值输入到所需要的函数中,下面看如何发送串口指令
def SendAndWait(ser, sendstr, findstr, timeout): ser.write(SendStr.encode()) Timeout = math.ceil(timeout) time.sleep(timeout) result = str(ser.read_all())#读出串口返回值 a = result.find(findstr)#找出返回值中所需要的语句作为判断条件 #根据自己需要对a进行应用 return def test(ser): #发送串口指令 SendAndWait(ser, "xxxxx", "zzzzz", 5)#ser是打开的串口,xxxxx是串口指令,zzzzz是需要在串口指令返回值中寻找的语句,5是timeout
二、ADB通信
adb通信是通过usb通信,不用打开串口,直接用subporcess函数进行语句发送就可以。
import subprocess
def adb():
subprocess.call("adb", "shell", "xxx", shell=True)#adb shell是cmd必须的语句,后面指令根据需要来。
a = subprocess.getoutput("adb", "shell", "xxx")#该函数不在终端上打印adb返回值,但是可以赋值给变量,方便通过变量来判断返回值中的内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)