使用python自动查找串口设备两种方式
本帖最后由 tedelon 于 2019-10-31 18:22 编辑1、方法一、python使用serial模块进行串口通信,采用轮询方式
import time
import serial
ser = serial.Serial()
def com():
i=1
while i<255: #轮询COM口
name='COM'+str(i)
#ser.open
try:
#ser.is_open
ser = serial.Serial(name)
ser.baudrate=9600
ser.timeout=0.5# 读超时设置
print(name)
data = []
# 接收返回的信息
while True:
count = 1
while count <= 20:
ser.write('MEASure:CURRent?\n'.encode())# 向端口写指令
print(count)
recv = ser.readline()
a = eval(recv)# 将字符串str当成有效的表达式来求值并返回计算结果。
print("实时值:", a)
data.append(a)
print(data)
time.sleep(1)
count = count + 1
break
except serial.serialutil.SerialException:
print("找不到设备或不能配置")
#pass
i+=1
com()
2、方法二、使用serial.tools.list.ports模块进行串口通信
import serial.tools.list_ports
import time
import re
#####list serial ports####
port_list = list(serial.tools.list_ports.comports())
print(port_list)
if len(port_list) == 0:
print('无可用串口')
else:
for i in range(0,len(port_list)):
print(port_list)
for port in port_list:
print(port)
name = port
######Read data####
ser=serial.Serial(name,9600,timeout=0.5)
time.sleep(1)
#ser.write("read\n")
while True:
time.sleep(0.5)
recv = ser.readline()
print(str(recv))
感谢大佬提供思路,收下我的膝盖 感谢提供思路,刚好可以用上了 感谢分享知识
页:
[1]