部分代码:
#打开串口 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())
为啥在read_data()这个方法里调用inwaiting(),报错,告诉我has no attribute 'inwaiting()',在方法外面写ser.inwaiting()正常,我不是已经把serial对象的引用传入方法中了吗?书大神解答!
你别传对象,用全局变量试试
print(dir(ser))
打印ser的所有方法,找到inWaiting
和in_waiting
,没有inwaiting,所以报错。你确定在外面调用的是inwaiting吗?