python – Pyserial:打开之前如何知道串口是否空闲
发布时间:2020-12-20 13:43:24 所属栏目:Python 来源:网络整理
导读:我使用Pyserial的 python来使用串口,??代码如下: import serialportName = 'COM5'ser = serial.Serial(port=portName)# Use the serial port... 但是,问题是,如果端口已经打开(例如另一个应用程序),当我尝试打开它时会出现错误:“SerialException:无法打
我使用Pyserial的
python来使用串口,??代码如下:
import serial portName = 'COM5' ser = serial.Serial(port=portName) # Use the serial port... 但是,问题是,如果端口已经打开(例如另一个应用程序),当我尝试打开它时会出现错误:“SerialException:无法打开端口’COM5’:WindowsError(5,’Access is否认.’)”. 我想知道我是否可以在尝试打开端口之前打开端口以避免此错误.我想使用一种条件,只有在我能够: import serial portName = 'COM5' if portIsUsable(portName): ser = serial.Serial(port=portName) # Use the serial port... 编辑: 我找到了一种方法: import serial from serial import SerialException portName = 'COM5' try: ser = serial.Serial(port=portName) except SerialException: print 'port already open' # Use the serial port... 解决方法def portIsUsable(portName): try: ser = serial.Serial(port=portName) return True except: return False 如评论中所述,在开启和关闭的情况下注意竞争条件…… 也可能更好的方法是返回串行对象或None def getSerialOrNone(port): try: return serial.Serial(port) except: return None [编辑]我故意将除外作为一个全能,因为我认为实际的失败并不重要.因为无论错误如何,该端口都不可用…因为该函数正在测试端口的可用性,所以为什么你得到一个异常并不重要,只有你有异常. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |