import serial : 串口操作的方法和屬性
import serial.tools.list_ports:查找串口
a = serial.tools.list_ports.comports()
為所有的串口分別生成ListPortInfo object,列表封裝
a[0]即得到第一個串口的參數,這個object可以像列表、元組那樣訪問,應該是個迭代器,print(a[0])或者list(a[0])
得到串口的詳細信息:COM8 - ELTIMA Virtual Serial Port (COM8->COM9)
grep(regexp, include_links=False),該方法查找指定串口,按照正則表達式的方式,
b = (serial.tools.list_ports.grep('.*8'))得到一個生成器
c = list(b),得到與comports()一樣的結構, print(a[0]):COM8 - ELTIMA Virtual Serial Port (COM8->COM9)
找到串口之后用serial方法進行讀寫,方法詳解:http://pythonhosted.org/pyserial/pyserial_api.html
接受數據是按照bytes格式接受,如果與嵌入式系統匹配,可以用a.hex()方法轉化成16進制
發送數據也是按照bytes格式發送,不支持unicode編碼,在發送字符串時需要加上 str.encode('utf-8'),
數值如果要轉化成bytes,用chr()方法或者格式化字符串 s = “%c” * n % (1,2,3,4,...n)
如果直接發送數字,如sport.write(100),我的串口調試助手接收到100個16進制數 00。。。