赞
踩
python内置的库函数很多,其中就包括串口通信的库-----serial。
import serial
ser = serial.Serial("/dev/ttyS1", 2400, timeout=5) #插入传感器自动识别设备,并设置波特率
ser = serial.Serial("/dev/ttyUSB0",9600,timeout=5)#识别到usb转串口设备,设备波特率为9600
ser.isOpen():查看端口是否被打开。
ser.open() :打开端口‘。
ser.close():关闭端口。
ser.read():从端口读字节数据。默认1个字节。
ser.read_all():从端口接收全部数据。
ser.write("hello"):向端口写数据。
ser.readline():读一行数据。
ser.readlines():读多行数据。
in_waiting():返回接收缓存中的字节数。
flush():等待所有数据写出。
flushInput():丢弃接收缓存中的所有数据。
flushOutput():终止当前写操作,并丢弃发送缓存中的数据。
1.将十进制列表转十六进制字符串
- da = [12,14,25,34]
- def to_hexstring(data):
- result = ''
- for i in data:
- tmp = hex(i)[2:].upper()
- if len(tmp) == 1:
- result += str(0) + str(tmp) + ' '
- else:
- resule += str(tmp) + ' '
- return result
-
- print(to_hexstring(da))
-
2.接收来自传感器的数据(数据帧,字节),并转换成十进制。
-
- def input(byte):
- rev_list = []
- try:
- for i in range(byte):
- rev = ser.read(1)
- rev = int.from_bytes(rev, byteorder = sys.byteorder)
- rev_list.append(rev)
- except:
- rev_list = [0x88]
- return rev_list
3.将十六进制字符串转换成字节流。
- def output(data):
- rev = to_hexstring(data)
- ser.write(bytes.fromhex(rev))
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。