python串口操作
Posted 奇妙之二进制
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python串口操作相关的知识,希望对你有一定的参考价值。
通过引用serial模块包,来操作串口。api见https://pyserial.readthedocs.io/en/latest/tools.html#serial.tools.list_ports.ListPortInfo
1、查看串口名称
在Linux和Windows中,串口的名字规则不太一样。
需要事先查看。
Linux下的查看串口命令
root@D2:~# ls -l /dev/ttyS*
crw-rw---- 1 root dialout 4, 64 Dec 26 06:53 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Dec 26 06:41 /dev/ttyS1
crw--w---- 1 root tty 4, 66 Dec 26 06:41 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Dec 26 06:41 /dev/ttyS3
windows下查看串口命令
在电脑的“设备管理器”中的“通用串行总线控制器”里查看。可以看看COM7这种字样的就是了。
2、先安装serial模块包
pip install pyserial
3、操作
有两种设置串口的方式:
- 方式一:
import serial
# 连接
# linux
ser = serial.Serial('/dev/ttyS0', 9600, timeout=0.2)
# windows
# ser = serial.Serial('COM7', 9600, timeout=0.2)
# 接收返回的信息
while True:
recv = ser.readline()
print(str(recv))
if str(recv) == 'q':
break
- 方式二:这个是可以关闭串口的
import serial
# 连接
ser = serial.Serial()
ser.port = '/dev/ttyS0'
ser.baudrate = 9600
ser.timeout = 0.2
ser.open()
# 接收返回的信息
while True:
recv = ser.readline()
print(str(recv))
if str(recv) == 'q':
break
ser.close()
windows下
import serial
import serial.tools.list_ports
plist = list(serial.tools.list_ports.comports())
if len(plist) <= 0:
print("The Serial port can't find!")
else:
for item in plist:
print(item.name)
print(item.device)
print(item.name)
print(item.description)
print(item.hwid)
print("%x" % item.vid)
print("%x" % item.pid)
print(item.serial_number)
print(item.location)
print(item.manufacturer)
print(item.product)
print(item.interface)
以上是关于python串口操作的主要内容,如果未能解决你的问题,请参考以下文章