我通過uart發送一些數據。我把單個文件分成5120byte的部分(塊)。在發送這個塊之間有中斷(可能基於波特率值),我需要捕獲這個中斷並從發送數據切換到接收數據。這是可能的嗎?Python:通過uart發送塊之間的中斷
示例代碼來發送數據:
ser = serial.Serial(
port='/dev/ttyS0',
baudrate=115200)
def send():
with open("path_to_my_file_to_send", "rb") as fh:
while True:
chunk = fh.read(5120)
if not chunk: break
ser.write(chunk)
def reveice():
global receivedData
receivedData = ""
time.sleep(0.001)
while ser.inWaiting() > 0:
receivedData= ser.read(1)
while True:
if len(receivedData) == 1:
print ("received data")
break
else:
print("no received data")
break
主要問題是在while循環中檢測到這種中斷:)我將代碼添加到收到的數據。 – KyluAce
重新檢查我的答案,看看它是否有幫助。 –
問題是我有時只會收到消息(只有當它在保存塊時發生錯誤或者沒有收到整個部分時,我纔會收到來自其他方的回覆),我需要爲它定時。儘管如此,我仍然需要在發送單個塊之後監聽接收到的數據,但我仍然不知道 – KyluAce