硬件:STM32F429IGT6核心板
操作系统:RTT V4.1.0
使用Ymodem协议从单片机发送文件至Xshell7。
问题1 Ymodem协议使用sy命令发送文件至电脑,文件名缺少第一个字母
MSH发送命令如下


缺少了首字母
不知道是不是我用法不对,如果前面开头加个‘/’,就是正常的
还是说就是bug,改成下面就好了
源码
rt_sprintf((char *)buf, "%s%c%d", (char *) & (cctx->fpath[1]), insert_0, file_buf.st_size);
改为
rt_sprintf((char *)buf, "%s%c%d", (char *) & (cctx->fpath[0]), insert_0, file_buf.st_size);
另外发送文件只能在当前目录下发送才能被电脑正常接收。
如果发送文件带上了文件路径,想发送子目录的文件,就会接收失败,因为电脑保存的文件名带上了‘/’,不被允许保存。
Xshell接收成功后卡死,软件崩溃。重新打开后串口正常运行。
发送中

打开文件

软件崩溃



重新打开串口正常

从上位机接收文件,不会发生这种情况。
是软件问题,还是单片机的问题。
举报
举报
举报
举报
举报
更多回帖