
封装了串口通讯模块支持Linux、Windows、BSD可能支持所有支持POSIX的操作系统支持 Jython (Java) 和 IconPython (.NET and Mono)。首页 http://pyserial.sf.net/1. 特性所有平台使用同样的类接口端口号默认从0开始程序中不需要知道端口名称像文件读写一样的APIread、writereadline等也受支持所有程序全由Python完成除了标准库外不依赖其他包除了 pywin32 (Windows)、JavaComm (Jython)、POSIX (Linux, BSD) 只依赖Python标准库。2.安装pyserial库pip install pyserial3.pyserial库常用函数介绍serial serial.Serial(‘COM1’, 115200) 打开COM1并设置波特率为115200COM1只适用于Windows serial serial.Serial(‘/dev/ttyS0’, 115200) 打开/dev/ttyS0并设置波特率为115200, 只适用于Linux print serial .portstr 能看到第一个串口的标识 serial .write(“hello”) 往串口里面写数据 serial .close() 关闭serial 表示的串口 serial .open() 打开串口 data serial .read(num) 读num个字符 data serial .readline() 读一行数据以/n结束要是没有/n就一直读阻塞。 serial .baudrate 9600 设置波特率 print serial 可查看当前串口的状态信息 serial .isOpen() 当前串口是否已经打开 serial.inWaiting() 判断当前接收的数据 serial.flushInput() 清除输入缓冲区数据 serial.flushOutput() 中止当前输出并清除输出缓冲区数据4.实例获取从其他串口发送来的数据并回显#!/usr/bin/python # codingUTF-8 import serial ################################################### # # 功 能: 将接收到的数据已hex显示 # 参 数: 串口接受到的数据 # 返 回: 转换后的数据 # ################################################### def hexshow(data): hex_data hLen len(data) for i in xrange(hLen): hvol ord(data[i]) hhex %02x % hvol hex_data hhex print hexshow:, hex_data ################################################### # # 功 能: 将需要发送的字符串以hex形式发送 # 参 数: 待发送的数据 # 返 回: 转换后的数据 # ################################################### def hexsend(string_data): hex_data string_data.decode(hex) return hex_data if __name__ __main__: serial serial.Serial(/dev/ttyS0, 115200) print serial if serial.isOpen(): print(open success) else: print(open failed) try: while True: count serial.inWaiting() if count 0: data serial.read(count) if data ! b: print(receive:, data) serial.write(data) else: serial.write(hexsend(data)) except KeyboardInterrupt: if serial ! None: serial.close()参考文献python的串口操作pyserial_ABC_Orange的博客-CSDN博客pySerial -- Python的串口通讯模块_lyh2529的博客-CSDN博客_pyserial 清除所