python串口讀寫,以16進制保存文件
需要使用pyserial庫,所以先安裝:
pip install pyserial
import serial
def bytes2Hex(argv): #十六進制顯示 方法1
try:
result = ''
hLen = len(argv)
for i in range(hLen):
hvol = argv[i]
if hvol == 0xfe: #遇到0xfe換行
result += '\r\n'
hhex = '0x%02x,'%hvol #轉爲0xff,
result += hhex
except:
pass
return result
def read_com():
portx = "COM7"
bps = 115200
try:
ser = serial.Serial(portx, bps)
print("串口詳情參數:", ser)
f = open('test.txt','w')
begin = b'\xfe\xe1\x04\x00\xc0' #發送內容
ser.write(begin) #串口寫數據
while ser.isOpen():
num = ser.inWaiting() #查詢串口接收字節數據,非阻塞
if num:
line = ser.read(num)
content = bytes2Hex(line)
f.write(content)
print(content)
except:
pass
finally:
end = b'\xfe\xe9\x04\x00\x00'
ser.write(end)
ser.close()
f.close()
if __name__ == "__main__":
read_com()