Teil des Codes:
#打开串口 ser=serial.Serial('COM3', 9600) #开启一个线程 th=threading.Thread(target=thread_read, args=(ser, msg_parsed)) th.start() def thread_read(ser, callback=None): buf=b' ' while running.is_set(): buf=read_data(ser, buf,callback=None) def read_data(ser, buf, callback=None): if callback is None: callback=print buf += ser.read(ser.inwaiting())
Warum erhalte ich eine Fehlermeldung, wenn ich inwaiting() in der Methode read_data() aufrufe, die besagt, dass es kein Attribut „inwaiting()“ gibt? Es ist normal, ser.inwaiting() außerhalb der Methode zu schreiben die Referenz des seriellen Objekts in die Methode? Der Buchmeister antwortet!
你别传对象,用全局变量试试
print(dir(ser))
打印ser的所有方法,找到inWaiting
和in_waiting
,没有inwaiting,所以报错。你确定在外面调用的是inwaiting吗?