Python 串口操作
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。。。
posted on 2017-10-10 12:14 Spencer_Rasp 阅读(14120) 评论(0) 编辑 收藏 举报