部分程式碼:
#打开串口
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嗎?