開發串口助手工具,需實現 Xmodem 1K 協議進行檔案傳輸。已能發送資料,但在按鈕事件循環發送時,無法同步等待接收端回應(ACK/NAK/CRC),導致流程無法推進至下一步。
IDLE、WAIT_C(等待接收端發送 'C' 表示支援 CRC)、SENDING、WAIT_ACK、RETRANSMIT、FINISHED、ERROR。Overlapped I/O 或建立 Worker Thread,配合事件通知主執行緒更新進度。發送端 接收端 | | |--- SOH/STX + Seq + Data + CRC ---> (校驗通過) | | |<--- ACK -----------------------| | | |--- Next Packet -------------->| | | |<--- NAK (錯誤) ----------------| -> 重傳當前包 | | |--- EOT ----------------------->| (傳輸結束) | | |<--- ACK -----------------------|
CAN (0x18) 取消傳輸信號,連續兩次 CAN 視為中止。建議先在 PC 端雙機直連或使用虛擬串口工具(如 com0com)驗證協議邏輯,再移植至目標嵌入式平台。