在ST官网下好了IAP的库,根据代码
if (key == 0x31) {
/* Download user application in the Flash */
SerialDownload();
}
在超级终端按下按键“1”进入 SerialDownload();函数,然后超级终端开始传文件,但是传不过去如下图
后来我查了ymodem协议,需要接收方先发一个大写字母C开启传输,我在ST的官方程序里并没有看到传输C的地方,不知道是不是这个原因,所以超级终端一直没有发生?
Ymodem协议是一种发送并等待的协议。即发送方发送一个数据包以后,都要等待接收方的确认。如果是ACK信号,则可以发送新的包。如果是NAK信号,则重发或者错误退出。 2、文件传输过程 文件传输过程的开启: (1)开启是由接收方开启传输,它发一个大写字母C开启传输。然后进入等待(SOH)状态,如果没有回应,就会超时退出。 (2)发送方开始时处于等待过程中,等待C。收到C以后,发送(SOH)数据包开始信号,发送序号(00),补码(FF),“文件名”,“空格”“文件大小”“除去序号外,补满128字节”,CRC校验两个字节。进入等待(ACK)态。
|