Sebahagian daripada kod:
#打开串口
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())
Mengapa saya mendapat ralat semasa memanggil inwaiting() dalam kaedah read_data() , memberitahu saya bahawa ia tidak mempunyai atribut 'inwaiting()'? Ia adalah perkara biasa untuk menulis ser.inwaiting() di luar kaedah rujukan objek bersiri ke dalam kaedah Hit? Guru buku menjawab!
Jangan melepasi objek, cuba gunakan pembolehubah global
print(dir(ser))
打印ser的所有方法,找到inWaiting
和in_waiting
, tiada menunggu, jadi ralat dilaporkan.Adakah anda pasti anda sedang menelefon menunggu di luar?