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

:上述的datasendreceive都是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')