博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
串口模块
阅读量:6379 次
发布时间:2019-06-23

本文共 1903 字,大约阅读时间需要 6 分钟。

hot3.png

该模块为线程对象,具体看代码。使用serial模块,数据接收为超时接收。适当的修改timeout可以变得更加合适于工作上的需要。调用serial的方法,可以在线程运行时修改串口的参数,自行修改这个模块。要很好的使用该模块,自己再了解下import 进来的几个模块。serial模块是需要自己进行安装的。python不自带。其他模块python2.5以上都是自带的。

#!/usr/bin/env python#-*- encoding: gb18030 -*-import threadingimport Queueimport serialimport timeclass ComOpen(threading.Thread):    def __init__(self,port=None,baudrate=None,parity=None,bytesize=None,stopbits=None,queue=None):        self.comm= serial.Serial()        self.queue= queue        self.comm.port = port        self.comm.baudrate = baudrate        self.comm.parity = parity        self.comm.bytesize = bytesize        self.comm.stopbits = stopbits        self.comm.setTimeout(0.5)        self.comm.open()        self.thread_stop=False        self.string=''        threading.Thread.__init__(self)    def run(self):        while not self.thread_stop:            try:                s=self.comm.read()                if len(s)>0:                    self.string +=s                elif len(self.string)>0:                    self.queue.put(self.string)##                    print self.string                    self.string=''                else:                    pass            except Exception,data:                if data.message=="timed out" and len(self.string)>0:                    print data                    self.queue.put(self.string)                    self.string=''                    continue                elif data.message=="timed out":                    print data                    continue                else:                    print data                    self.stop()    def senddate(self,data):        if not self.thread_stop:            self.comm.write(data)    def stop(self):        self.thread_stop=True        try:            self.comm.flush()            self.comm.close()        except Exception,data:            print data

转载于:https://my.oschina.net/zhengyijie/blog/81864

你可能感兴趣的文章
JavaScript之将JS代码放在什么位置最合适
查看>>
【“零起点”--百度地图手机SDK】如何使用离线地图?
查看>>
深拷贝与浅拷贝复习
查看>>
各种参数的响应时间
查看>>
SQL Server 索引重建脚本
查看>>
23:LVS客户端配置脚本案例
查看>>
Android播放本地视频
查看>>
80. Hibernate 5.0命名策略使用naming-strategy 不起作用【从零开始学Spring Boot】
查看>>
not found command:svn
查看>>
addEventListener和attachEvent小结
查看>>
IPHONE 开发 4 -- 深入理解iPhone OS/SDK与Objective-C 2.0
查看>>
在windows平台下获取精确经过时间
查看>>
SQL Server的还原(2)——STOPAT
查看>>
IOS(http几种请求)
查看>>
【转】域名解析相关概念
查看>>
hdu 1232:畅通工程(数据结构,树,并查集)
查看>>
在.NET中实现彩色光标/动画光标和自定义光标[转]
查看>>
freemarker错误七
查看>>
Cocos2dx 3.x创建Layer的步骤
查看>>
ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)
查看>>