网站首页 文章专栏 Python 串口
2021 更新 2
清空缓冲区
写入或者读出,调用 flush
确保完成
ser.flush()
获得接收缓冲区字符数
count = ser.inWaiting()
python
ser.flushInput()
及时关闭串口
try:
main()
except KeyboardInterrupt:
if ser != None:
ser.close()
python
import serial.tools.list_ports
plist = list(serial.tools.list_ports.comports())
if len(plist) <= 0:
print("没有发现端口!")
else:
plist_0 = list(plist[0])
serialName = plist_0[0]
serialFd = serial.Serial(serialName, 9600, timeout=60)
print("可用端口名>>>", serialFd.name)
程序退出回调
https://learnku.com/docs/pymotw/atexit-program-shutdown-callbacks/3458
atexit — 程序关闭时回调
import pty
import os
import select
def mkpty():
master1, slave = pty.openpty()
slaveName1 = os.ttyname(slave)
master2, slave = pty.openpty()
slaveName2 = os.ttyname(slave)
print '\nslave device names: ', slaveName1, slaveName2
return master1, master2
if __name__ == "__main__":
master1, master2 = mkpty()
while True:
rl, wl, el = select.select([master1, master2], [], [], 1)
for master in rl:
data = os.read(master, 128)
print "read %d data." %len(data)
if master == master1:
os.write(master2, data)
else:
os.write(master1, data)