1. 程式人生 > >python基於pyserial的串列埠通訊

python基於pyserial的串列埠通訊

pyserial官方文件
該模組封裝了串列埠的訪問許可權,它為windows, OSX, Linux, BSD(可能是任何POSIX相容系統)提供介面。

下面將介紹如何開啟串列埠以及如何配置串列埠:

class serial.Serial
__init__(port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, write_timeout=None, dsrdtr=False, inter_byte_timeout=
None) port ----裝置名 baudrate(int) ---- 波特率,values:9600 or 115200 bytesize ---- 資料位, values: FIVEBITS, SIXBITS, SEVENBITS, EIGHTBITS parity ---- 奇偶校驗位, values:PARITY_NONE, PARITY_EVEN, PARITY_ODD PARITY_MARK, PARITY_SPACE stopbits ---- 停止位, values:STOPBITS_ONE, STOPBITS_ONE_POINT_FIVE, STOPBITS_TWO timeout(
float) ---- 設定讀取超時值 xonxoff(bool) ---- 使能軟體流控制 rtscts(bool) ---- 使能硬體(RTS/CTS)流控制 dsrdtr(bool) ---- 使能硬體(SDR/DTR)流控制 write_timeout(float) ---- 設定寫超時值 inter_byte_timeout(float) ---- 字元間超時,None禁用(預設)
  1. 在建立例項時直接傳參配置串列埠
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
print(ser.name)
ser.write(
b'hello') ser.close()
  1. 先獲取一個例項,後通過例項配置串列埠 先獲取一個例項,後通過例項配置串列埠
ser = serial.Serial()
ser.baudrate = 9600
ser.port = 'COM1'
ser.open()
ser.isOpen()     //判斷串列埠是否開啟
>> True
ser.close()
ser.isOpen()    
>> False

如何獲取串列埠裝置號?

import serial.tools.list_ports
port_list = list(serial.tools.list_ports.comports())
port = port_list[0].device
print(port)
>> 'COM5'