使用python连续读取/监视串行端口(如果端口未打开,则连续运行脚本)

2024-09-30 01:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python和串口的新手。我想连续监视串行端口。如果端口未打开或访问被拒绝,则需要不停止地运行python脚本。 我做了一些事情,但当端口未打开或访问被拒绝时,该脚本已停止。请帮助某人解决此问题

import serial
z1baudrate = 9600
z1port = 'COM4'
z1serial = serial.Serial(port=z1port, baudrate=z1baudrate,timeout=1)
try:
   if z1serial.is_open:
      while True:           
        size = z1serial.inWaiting()                   
        if size:                
            data = z1serial.read(size)                                                  
            res= data.decode("utf-8")   
            print(res)      
        else:
            print("Data not reading")
       time.sleep(1)
  else:
    z1serial.close()
    print('z1serial not open or Already in use')
except serial.SerialException as e:
  z1serial.close()
  print('COM4 not open')

Tags: 端口脚本datasizeifserialnotres
1条回答
网友
1楼 · 发布于 2024-09-30 01:24:02

您需要在try块中包含z1serial赋值,如下所示:

import serial
import time
z1baudrate = 9600
z1port = 'COM4'
while True:
    try:
        z1serial = serial.Serial(port=z1port, baudrate=z1baudrate,timeout=1)
        if z1serial.is_open:
            while True:           
                size = z1serial.inWaiting()                   
                if size:                
                    data = z1serial.read(size)                                                  
                    res= data.decode("utf-8")   
                    print(res)      
                else:
                    print("Data not reading")
                time.sleep(1)
        else:
            z1serial.close()
            print('z1serial not open or Already in use')
    except serial.SerialException:
        print('COM4 not open')
        time.sleep(1)

这对我来说很有效,运行在Python3.7上

相关问题 更多 >

    热门问题