2014-11-14 468 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