'''@ author: summer@ tools: pycharm@ content: 串口通讯实现类@ date: 2020年2月12日'''import serialimport serial.tools.list_portsclass SerialAchieve:def __init__(self,band=115200,check="无校验位",data=8,stop=1):self.port = None# 获取可用串口self.port_list = list(serial.tools.list_ports.comports())assert (len(self.port_list) != 0),"无可用串口"self.bandRate = bandself.checkbit = checkself.databit = dataself.stopbit = stop# 读写的数据self.read_data = Noneself.write_data = Nonepassdef show_port(self):for i in range(0,len(self.port_list)):print(self.port_list[i])def show_other(self):print("波特率:"+self.bandRate)print("校验位:" + self.checkbit)print("数据位:" + self.databit)print("停止位:" + self.stopbit)# 返回串口def get_port(self):return self.port_list# 打开串口def open_port(self,port):self.port = serial.Serial(port, self.bandRate,timeout = None)def delete_port(self):if self.port != None:self.port.close()print("关闭串口完成")else:passdef Read_data(self): # self.port.read(self.port.in_waiting) 表示全部接收串口中的数据self.read_data = self.port.read(self.port.in_waiting) # 读取数据return self.read_data.decode("utf-8")def Write_data(self,data):if self.port.isOpen() == False:print("串口打开错误")else:self.port.write(data.encode("utf-8")) # 返回的是写入的字节数if __name__ == '__main__':myser = SerialAchieve()myser.open_port("COM7")myser.delete_port()myser.show_port()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。