Python3serial(串⼝模块)读取数据及数据格式处理最近⽤Python中的串⼝模块挺多的,也很好⽤,下⾯是⼀些基本功能的总结,包括设置并打开串⼝,判断串⼝是否打开,关闭串⼝
还有就是serial 模块在 读取串⼝数据的时候,需要对读取到的数据进⾏⼀定的处理,才能把想要的信息提取出来。
import serial  # 导⼊串⼝通信模块
import re  # 提取⽂本中的特定类型字符
portx = "COM2"  # COM2⼝⽤来读数
bps = 9600
# 设置并打开串⼝
ser = serial.Serial(portx, int(bps), timeout=1, parity=serial.PARITY_NONE, stopbits=1)
# 串⼝执⾏到这已经打开再⽤open命令会报错
if ser.isOpen():  # 判断串⼝是否打开
print("open success")
ser.write("hello".encode("utf8"))  # 向端⼝些数据字符串必须译码
line = read_line(ser)  # 递归读取串⼝
python怎么读取串口数据if line:
# 不知是虚拟串⼝的原因还是serial模块的原因,读取到的数据是 ASCII 编码
# 这⾥如果不知道是什么编码的话,可以采⽤ chardet 库查看⼀下
# ret = chardet.detect(line)  # 查看串⼝返回来的数据到底是什么编码!是ASCII!!
line.decode('ascii', 'ignore')  # 以字符串的格式接收需要重新转码
line = str(line, 'utf-8')  # 转换成 'utf-8' 编码
# 去除回车和换⾏
line = place('\n', '').replace('\r', '')
step = re.sub("\D", "", line)  # 这⼀句是把字符串中数字提取出来
expression = ''.join(re.findall(r'[A-Za-z]', line))  # 提取字符串中的字母
ser.close()  # 关闭端串⼝

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。