=> AT+CFTPPORT=21 设置FTP服务端口
<= OK
AT+CFTPSERV="xxx.xxx.xxx.xxx" 设置FTP服务器IP
<= OK
=> AT+CFTPTYPE=I 使用二进制传输 A表示使用ASCII 传输
<= OK
=> AT+CFTPMODE=1 FTP服务端使用被动模式(客户端通过连接数据端口来get文件数据)
<= OK
=> AT+CFTPUN="login_usr" FTP服务器登录账户
<= OK
=> AT+CFTPPW="login_pwd" FTP服务器登录口令
<= OK
=> AT+CFTPGET="/mcu.bin",0,1 文件位置, /表示FTP服务器的根目录, 第一个0表示数据起始位置(用于断点续传), 1表示使用cache方式获取数据
<= OK
<= +CFTP: RECV EVENT //OK应答后,可能会隔几秒钟才会接收到此应答 ,以及下一句应答
<= +CFTPGET: 0 //当接收到 这个应答后, 查询cache缓冲区内的数据才是有效的
=>AT+CFTPCACHERD? 当发送该指令查询cache中的数据长度时, 必须等到上一次指令接收到应答(蓝色)
<= +CFTPCACHERD: 63840
<= OK
=> AT+CFTPCACHERD 当查询到cache中的数据长度后, 每调用一次该命令, 将输出1024字节的数据
<= +CFTPGET: DATA,1024 提示串口将输出1024字节的数据 -- 最后一个片段可能会小于1024字节
<= 1024字节的 2进制数据--------------- 最后一个片段可能会小于1024字节
========================================================================================
如果采用非cache方式下载数据
=> AT+CFTPGET="/mcu.bin",0,0 文件位置, /表示FTP服务器的根目录, 第一个0表示数据起始位置(用于断点续传), 0表示使用非cache方式获取数据
<= OK OK响应会马上收到
<= +CFTPGET: DATA,1480 过几秒开始结构到数据报文, 报文的头部指示了后续文件数据负荷长度为1480
<= 1480字节的 2进制数据---------------每一个片段的数据长度不是固定的
<= +CFTPGET: DATA,xxx ----------xxx表示每一个片段的数据长度不是固定的
<=
最后一个报文的数据长度=0
<= +CFTPGET: DATA,0 最后一个数据报文标识的文件数据负荷长度为0
使用费cache方式, 上位机必须有足够的缓存能够接收全部的窗口数据,否者会导致数据丢失
使用cache方式的优点是,可以使用Host发送AT+CFTPCACHERD命令,控制每次传输的数据量最多为1k
host处理完这1k数据后,通过发送AT+CFTPCACHERD命令来读取下一个数据分段