python基於pyserial的串列埠通訊
阿新 • • 發佈:2018-12-21
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禁用(預設)
- 在建立例項時直接傳參配置串列埠
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
print(ser.name)
ser.write( b'hello')
ser.close()
- 先獲取一個例項,後通過例項配置串列埠 先獲取一個例項,後通過例項配置串列埠
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'