0、序
在python中进行串口的相关应用编程,需要借助pyserial这个库。
安装串口库:
pip3 install pyserial
如果你使用的是python2.x,那么你使用pip安装的方式如下:
pip install pyserial
1、编程范式
1.1、初始化
class UartInit(object):
def __init__(self, serial, baud):
self.ser = serial.Serial(serial, baudrate=baud, timeout=0.1,
bytesize=8, parity='N', stopbits=1, xonxoff=0,rtscts=0)
self.ser.flushInput()
self.ser.flushOutput()
1.2、串口写处理
def datasend(self, cmd='', max_time=def_max_time):
ser = self.ser
cmd = cmd + '\n'
cmd = cmd.encode("ascii")
ser.flushInput()
ser.flushOutput()
ser.write(cmd)
Gotstr = self.receive(max_time)
logging.info('Tx -> ' + unicode_str)
if Gotstr == None or len(unicode_str.strip()) == 0:
self.logging.warning('Returning empty response for Tx -> ' + cmd)
return ''
return unicode_str
1.3、串口读处理
def receive(self, max_time=def_max_time):
ser = self.ser
ret =b''
start = prev = time.time()
while True:
curr = time.time()
if (curr - start > max_time):
break
c = ser.read()
if len(c):
ret += c
prev = curr
Gotstr = ret.decode("utf-8", "ignore")
return Gotstr
注:上述的datasend 和 receive都是class UartInit中的方法。
1.4、实例化
import os
import sys
import time
import logging
import string
import serial
def_max_time = 3
if __name__ == '__main__':
usrt1 = UartInit('COM1', 230400)
usrt1.datasend('hello_world')