Pyserial 实现串口 base on python3
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Pyserial 实现串口 base on python3,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2236字,纯文字阅读大概需要4分钟。
内容图文
![Pyserial 实现串口 base on python3](/upload/InfoBanner/zyjiaocheng/826/43beb0f0ffdb4bee8a865b021c35aa18.jpg)
应用Pyserial 包实现串口通信类:
其主要接口如下:
1. Serial_Create 创建和使能串口
2. Serial_WriteAndReadBin 写读二进制数据流
3. Serial_WriteAndReadString 写读字符串
4. Serial_WriteString 写字符串
5. Serial_WriteBin 写二进制数据
6. Serial_Read 读字符串数据
#coding:utf-8 #!/usr/bin/python3 import serial import serial.tools.list_ports import threading import time __all__ = ["CSerial"] class CSerial: def __init__(self, Port, Baud, TimeOut): self.l_serial = None self.alive = False self.waitEnd = None self.port = Port self.baud = Baud self.timeOut = TimeOut self.readString = "" self.readBin = None self.receiveReady = False self.thread_SerialRead = None def Serial_Create(self): try: self.l_serial = serial.Serial(self.port, self.baud, timeout=self.timeOut) except Exception as e: print("serial port error:", e) def Serial_WriteAndReadBin(self,bin): WaitingCnt = 0 self.alive = True self.l_serial.write(bin) while self.alive: time.sleep(0.1) #1 second if self.l_serial.in_waiting: self.readBin = self.l_serial.read(self.l_serial.in_waiting) self.alive = False return self.readBin else: WaitingCnt += 1 if WaitingCnt > 3: return None return None def Serial_WriteAndReadString(self,string): WaitingCnt = 0 self.readString = "" self.alive = True self.l_serial.write(string.encode("gbk")) while self.alive: time.sleep(0.1) #1 second if self.l_serial.in_waiting: self.readString = self.l_serial.read(self.l_serial.in_waiting).decode("gbk") self.alive = False return self.readString else: WaitingCnt += 1 if WaitingCnt > 3: return None return None def Serial_ReadData(self): while self.alive: if self.l_serial.in_waiting and self.receiveReady == False: self.readData = self.l_serial.read(self.l_serial.in_waiting) self.receiveReady = True def Serial_WriteString(self,string): length = self.l_serial.write(string.encode("gbk")) return length def Serial_WriteBin(self,bin): length = self.l_serial.write(bin) return length def Serial_Read(self): if self.l_serial.in_waiting: STRGLO = self.l_serial.read(self.l_serial.in_waiting).decode("gbk") print(STRGLO) def Serial_Close(self): self.alive = False if self.l_serial.isOpen(): self.l_serial.close() #test example if __name__ == '__main__': test = CSerial("COM41",9600,100) test.Serial_Create() print(test.Serial_WriteAndReadString("hello, I am a serial port!\r\n"))
内容总结
以上是互联网集市为您收集整理的Pyserial 实现串口 base on python3全部内容,希望文章能够帮你解决Pyserial 实现串口 base on python3所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。