下载 pyserial包
创新互联公司是一家专注于成都网站建设、成都网站设计与策划设计,锦屏网站建设哪家好?创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:锦屏等地区。锦屏做网站价格咨询:13518219792
def OpenCom(self,*args): #设置端口和波特率 selComPort =‘com2’ #波特率 selBaudRate =9600 #奇偶校验 selParity = 'N' try: if(not self.mySerial): self.mySerial = serial.Serial(port=selComPort, baudrate=selBaudRate,bytesize=8,parity=selParity,stopbits=1,timeout=5) else: if(self.mySerial.isOpen()): self.mySerial.close() self.mySerial = serial.Serial(port=selComPort, baudrate=selBaudRate, bytesize=8, parity=selParity, stopbits=1, timeout=5) self.lblInfo['text'] = '打开成功!' except Exception as ex: self.lblInfo['text'] = '打开失败!'
#使用com口发送modbus协议给终端设备。
def btnEmId_Click(self):
barray = bytearray([0x05, 0x03, 0xA#, 0x54, 0x00, 0x08])
vOldEmId = self.txbOldEmId.get()
vNewEmId = self.txbNewEmId.get()
barray[0] = int(vOldEmId)
barray[5] = int(vNewEmId)
#crc校验
strInput = utils.crc16_append(barray)
print(barray)
n = self.mySerial.write(barray)
if(n 0):
str = self.mySerial.readall()
self.lblInfo['text'] = 'success!'
# for s in str:
# print (hex(s))
else:
self.lblInfo['text'] = 'error!'
用ser.isOpen()查看返回False,说明ser.close()起作用了啊。用管理员身份打开cmd,再执行脚本试试?
python提供了丰富的module 对串口的操作同样有对应的module:serial
环境:python3.5 蓝牙模块:HC-05 波特率38400
首先导入serial模块(通过pip install serial 安装)
获取串口ser 通过serial.Serial(地址,波特率,超时时间)
创建线程监听串口数据
使用 ser.in_waiting() 获知数据量 这个函数返回当前串口收到的数据长度
收取数据后进行详细操作
使用 pyserial 就可以处理串口通信,这个包是跨平台的。
示例程序在这里:
import serial
# 创建serial实例
serialport = serial.Serial()
serialport.port = 'COM1'
serialport.baudrate = 9600
serialport.parity = 'N'
serialport.bytesize = 8
serialport.stopbits = 1
serialport.timeout = 0.6
try:
serialport.open()
serialport.setDTR(True)
serialport.setRTS(True)
except Exception, ex:
print ex
# 发送数据
serialport.write(raw_data)
# 根据项目要求,可以开一个线程扫描接收数据
网页标题:python串口函数 python串口控制
新闻来源:https://www.cdcxhl.com/article8/dogdcip.html
成都网站建设公司_创新互联,为您提供网站内链、微信小程序、动态网站、企业网站制作、小程序开发、网站维护
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联