我的代码收到以下错误:
NameError:名称'ser'未定义
Mainpythonfile.py:
import serial
from commands import *
############## Initializing COM -Port #####################
ser = serial.Serial()
ser.baudrate = 19200
ser.port = 'COM3'
ser.timeout = 0.1
ser.open()
print("Serial Port geöffnet: ", ser.is_open)
write("ADR 06")
commands.py:
def write(text):
ser.write(bytes("{}\r".format(text), 'utf-8'))
#print(bytes("{}\r".format(text), 'utf-8'))
return ser.readline().decode('utf-8')
我的代码有什么问题,希望你能帮帮我:)。
答案 0 :(得分:0)
commands.py
不了解Mainpythonfile.py
内的变量。
然而,您可以将变量传递给函数:
<强> Mainpythonfile.py:强>
ser = serial.Serial()
...
write(ser, "ADR 06")
<强> commands.py:强>
def write(ser, text):
ser.write(bytes("{}\r".format(text), 'utf-8'))
#print(bytes("{}\r".format(text), 'utf-8'))
return ser.readline().decode('utf-8')
请注意ser
现在是函数write
的参数,并且您是从主模块传递的。
答案 1 :(得分:0)
最快的解决方案是将ser添加为write
的参数,并在主脚本中调用它时将实例化的ser传递给。