Ранее я опубликовал сложный вопрос, похожий на этот, но гораздо более простым способом.
Основная проблема - всякий раз, когда я выбираю порт из выпадающего меню и пытаюсь открыть его для чтения данных с Arduino или беспроводного модема.
Каждый раз, когда приходится сталкиваться с ошибкой, последовательный порт не открывается.
Жесткий код, в котором я исправляю COM-порт, работает отлично
Упомянутый ниже код, который я упростил и пытаюсь работать с
import serial
import serial.tools.list_ports
from tkinter import *
ard = serial.Serial();
ard.baudrate = 9600
master = Tk()
variable = StringVar(master)
a=serial.tools.list_ports.comports()
for w in a:
print(w.device)
dev = [w.device]
print(dev)
variable.set(dev[0]) # default value
w = OptionMenu(master, variable, *dev)
w.pack()
ard.port = str(w)
ard.open
ard.is_open
#print(k)
def ok():
print (variable.get())
k = ard.readline()
button = Button(master, text="OK", command=ok)
button.pack()
mainloop()
но каждый раз, когда я сталкиваюсь с ошибкой
COM4
['COM4']
COM4
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Misha\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "C:\Users\Misha\Desktop\test\autoserial.py", line 27, in ok
k = ard.readline()
File "C:\Users\Misha\AppData\Local\Programs\Python\Python36\lib\site-packages\serial\serialwin32.py", line 267, in read
raise portNotOpenError
serial.serialutil.SerialException: Attempting to use a port that is not open
Пожалуйста, подскажите, кто поможет мне сделать эту работу, Ваши выводы окажут мне большую помощь.