【Python编程】基于serial库串口通信实战

导读:本篇文章讲解 【Python编程】基于serial库串口通信实战,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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')

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116954.html

(1)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!