Python串⼝异步通信
Python串⼝异步通信(串⼝接收中断)
串⼝是计算机上⼀种⾮常通⽤的设备通信协议。pyserial模块封装了python对串⼝的访问,为多平台的使⽤提供了统⼀的接⼝。安装库
Python要使⽤串⼝功能需要导⼊这两个库:
pyserial (基本串⼝功能)
pip3 install pyserial
pyserial-asyncio (实现异步功能需要这个库)
pip3 install pyserial-asyncio
获取串⼝名称
使⽤ls.list_portsports()函数会返回⼀个ListPortInfo类型的列表
import serial
ls.list_ports
class serial_class:
def get_port(self):
self.port_list = ls.list_portsports()
return self.port_list
serial_port = serial_class()
port = _port()
python怎么读取串口数据for i in range(0,len(port)):
print(tuple([port[i].device]))
普通串⼝操作
import serial
portx="COM3"
bps=115200
timex=5
# 打开串⼝,并得到串⼝对象
ser=serial.Serial(portx,bps,timeout=timex)
# 写数据
result=ser.write("我是东⼩东".encode("gbk"))
print("写总字节数:",result)
ser.close()#关闭串⼝
开始异步收发
import asyncio
import serial_asyncio
class Output(asyncio.Protocol):
def connection_made(self, transport):
print('port opened', transport)
s =False
transport.write(b'hello world\n')
def data_received(self, data):
print('data received',repr(data))
#ansport.close()
def connection_lost(self, exc):
print('port closed')
<_event_loop().stop()
loop = _event_loop()
coro = ate_serial_connection(loop, Output,'COM1', baudrate=115200) loop.run_until_complete(coro)
loop.run_forever()
loop.close()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论