2014-11-14 93 views
1

我必須通過串口將文件發送到我的程序,該程序使用超級終端和XMODEM協議在嵌入式設備上運行。串行通信正常(9600波特,1個StopBit,無奇偶校驗,8個數據位,無流量控制),因爲發送命令和接收應答都正常工作。在超級終端上通過XModem接收文件

當我發送命令「upload」時,設備在準備好並等待文件時應答。在超級終端中,我然後轉到傳輸 - >發送文件...,選擇一個文件和XMODEM協議,然後單擊「發送」。點擊發送後,上傳不會開始並顯示超時消息。

調試時,我看到程序沒有收到串口的任何字節,但是如果我發送一個字節點擊一個鍵,程序就會收到它。我能否認爲問題在於超級終端不發送任何內容?這是爲什麼?

+0

您可能想重新提出這個問題,以便明確地說明軟件開發。如果您正在開發嵌入式設備XMODEM代碼,這可能是一個合理的問題,但從表面上看,這是SO的主題,並且可能會被關閉。 – Clifford 2014-11-14 15:12:57

+0

「re-word」是什麼意思? – 2014-11-15 16:00:12

+0

我的意思是重寫它的方式描述,使問題適合StackOverflow的範圍。請參閱http://stackoverflow.com/help/on-topic和http://stackoverflow.com/help/dont-ask。到目前爲止,您已經吸引了一次近距離投票,但是該用戶沒有幫助地評論解釋他的反對意見。 – Clifford 2014-11-16 08:58:25

回答

0

XMODEM轉移由接收方而不是發送方發起。當接收設備發送SOH(XMODEM)或'C'(XMODEM-CRC/1K)時,傳輸開始。如果接收端不啓動傳輸,則不會發生傳輸。

您可能會發現您必須從發送端開始傳送,然後在接收端啓動傳送。或者,在等待傳輸時,接收端可能會重複發送起始字符,直到它收到響應(或超時)。

+0

謝謝。問題在於接收器發送的第一個'C'太早,而下一個太遲。 – 2014-11-17 10:17:47