
正文
python串口操作函数 python 串口
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
1-python库之-serial串口操作
python里面使用serial库来操作串口,serial的使用流程跟平常的类似,也是打开、关闭、读、写
一般就是设置端口,波特率。
使用serial.Serial创建实体的时候会去打开串口,之后可以使用is_open开判断下是否串口是否打开正常。
使用ser.close即可关闭串口
数据的写使用ser.write接口,如果写的是十六进制的数据使用bytearray来定义,如 writebuf = bytearray([0x55, 0xaa, 0x00, 0x01, 0x00, 0x00])
读数据使用ser.read接口,一般会先使用in_waiting来判断下是否有数据,然后开始读
下面举一个例子,说明下我们在实际的使用情况。
一般会单独创建一个进程来作为数据的接收,然后再配合上标记位或者信号量来处理逻辑
相关问答
Q1: python对串口蓝牙模块的操作
python提供python串口操作函数了丰富python串口操作函数的module 对串口的操作同样有对应的module:serial
环境:python3.5 蓝牙模块:HC-05 波特率38400
首先导入serial模块(通过pip install serial 安装)
获取串口ser 通过serial.Serial(地址python串口操作函数,波特率,超时时间)
创建线程监听串口数据
使用 ser.in_waiting() 获知数据量 这个函数返回当前串口收到的数据长度
收取数据后进行详细操作
Q2: Python如何进行多串口通信?一个串口控制电机 一个串口采集数据?
下载 pyserial包
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'] = '打开成功python串口操作函数!' except Exception as ex: self.lblInfo['text'] = '打开失败python串口操作函数!'
#使用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'] = 'successpython串口操作函数!'
# for s in str:
# print (hex(s))
else:
self.lblInfo['text'] = 'errorpython串口操作函数!'
Q3: python的串口close()函数关闭不成功
用ser.isOpen()查看返回False,说明ser.close()起作用了啊。用管理员身份打开cmd,再执行脚本试试?
python串口操作函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python 串口、python串口操作函数的信息别忘了在本站进行查找喔。






