Partie du code :
#打开串口
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())
Pourquoi est-ce que j'obtiens une erreur lors de l'appel de inwaiting() dans la méthode read_data(), me disant qu'elle n'a pas d'attribut 'inwaiting()' ? Il est normal d'écrire ser.inwaiting() en dehors de la méthode. la référence de l'objet série dans la méthode Hit ? Le maître du livre répond !
Ne transmettez pas d'objets, essayez d'utiliser des variables globales
print(dir(ser))
打印ser的所有方法,找到inWaiting
和in_waiting
, il n'y a pas d'attente, donc une erreur est signalée.Êtes-vous sûr d'appeler en attendant dehors ?