部分代码:
#打开串口
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吗?