资源简介
基于STM32F205的W5500从FTP服务器下载文件例程,经过测试可以使用
详细的FTP连接下载过程,详细驱动指令

代码片段和文件信息
#include “app_ftp.h“
static tFTPCtrlDef FTP_DownloadCtrl;
static unsigned char FTP_DataIP[4]; //FTP服务器数据通道IP
static unsigned short FTP_DataPort; //FTP服务器数据通道端口
extern unsigned short ConvertHexCharToHex(unsigned char *pStrsDataunsigned short lenunsigned char *pHexData);
unsigned char IsCommendValid(uint16_t Responses)
{
if((Responses == R_150)||(Responses == R_200)||(Responses == R_220)||(Responses == R_226)
||(Responses == R_227)||(Responses == R_230)||(Responses == R_331)||(Responses == R_530))
{
return 1;
}
else
{
return 0;
}
}
void FTP_Commend_Analysis(unsigned char *pdataFUN_COMM comm)
{
uint16_t Responses;
char tmp[256];
uint8_t dat[30]={0};
unsigned char i;
char * tok=0;
// /************************************************打印************************************************/
// #ifdef NET_PRINTF
// memset(tmp0sizeof(tmp));
// strcpy(tmp(char*)pdata);
// NetSocketTcpSend(NET_SOCKET_4 (unsigned char*)tmp strlen(tmp));
// #endif
// /************************************************打印************************************************/
Responses =(pdata[0]-‘0‘)*100+(pdata[1]-‘0‘)*10+(pdata[2]-‘0‘);
if(IsCommendValid(Responses))
{
FTP_DownloadCtrl.Waiting_Flag = 0;
}
else
{
return;
}
switch(Responses)
{
case R_220: //服务器OK
{
FTP_DownloadCtrl.ServerReady_Flag = 1;
// FTP_DownloadCtrl.UserLogin_Flag = 0;
}break;
case R_230:
{
FTP_DownloadCtrl.UserLogin_Flag = 2;
}break;
case R_227: //进入被动模式,接收FTP服务器的IP和端口号
{
strtok((char*)pdata“(“);
//读取IP
for(i=0;i<4;i++)
{
tok = strtok(NULL““);
if(tok == 0)
{
return;
}
FTP_DataIP[i] = atoi(tok);
}
//读取端口号
FTP_DataPort = 0;
for(i=0;i<2;i++)
{
tok = strtok(NULL““);
if(tok == 0)return;
FTP_DataPort<<=8;
FTP_DataPort += atoi(tok);
}
FTP_DownloadCtrl.PASV_Flag = 1;
}break;
case R_331:
{
FTP_DownloadCtrl.UserLogin_Flag = 1;
}break;
case R_530:
{
FTP_DownloadCtrl.UserLogin_Flag = 0;
}break;
}
}
void FTP_FileDownloadCtrl(FUN_COMM comm)
{
unsigned char i;
unsigned int FileOffset;
unsigned int Flash_Addr;
FRESULT res; // FatFs function common result code
short int Total_Datalen;
unsigned int FileSize;
unsigned short int Pack_Datalen;
char tmp[MAX_DATALEN];
CPU_BOOL Ret;
unsigned int retlen;
// unsigned int Offset = 0;
unsigned char GetDataFlag;//下载到数据标志,用来判断是否更新了文件
if(FTP_DownloadCtrl.Waiting_Flag == 1) //正在等待应答,则不动作
{
return;
}
if(NetSocketStatusGet(NET_SOCKET_2) == DEF_OFF)
{
return;
}
if(FTP_DownloadCtrl.UserLogin_Flag == 0) //未登陆,先发送用户名
{
memset(tmp0sizeof(tmp));
sprintf(tmp“USER %s\r\n“inifile_net_param.ftpuser);
FTP_DownloadCtrl.Waiting_Flag = 1;
comm((unsigned char*)tmpstrlen(tmp));
}
else if(FTP_DownloadCtrl.UserLogin_Flag == 1) //发送密码
{
memset(tmp0sizeof(tmp
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2064 2018-12-07 13:59 app_ftp.h
文件 8564 2018-12-19 17:38 app_ftp.c
----------- --------- ---------- ----- ----
10628 2
- 上一篇:NT35310中文文档
- 下一篇:60S2单片机驱动DS18B20温度传感器C程序
相关资源
- FTP课程设计(服务端+客户端)
- Uninstall_Cortana_WINCLIENT.CN.rar
- python实现的ftp自动上传、下载脚本
- 用Socket编程实现FTP
- tftp文件传输工具
- SOCKET 网络编程 计算机网络 作业 客户
- linux 网络实验 ftp程序
- 用Socket写的简易FTP服务器和客户端
- 基于C 的简易FTP客户端(带源码)
- 用IdFTPServer写的一个FTPServer程序
- Modbus TCP Client
- SVNDrv.sys
- w5500原理图封装
- FTP命令详解.doc
- MES 培训手册 001# PM05.MESClient-清场单
- 一个简单方便的服务端ftp搭建工具
- 20cn的ftp服务器超好用 简洁
- 最好用的FTP服务器
- CuteFTP8.0绿色破解版免安装无需序列号
- PSFTP.EXE 工具
- CuteFTP8.0简体中文破解版
- lotus domino notes(包括client administrato
- W5500程序例程
- Wing FTP Server FTP服务器 v6.1.9
- CH395与W5500测试
- 易语言绵绵FTP网络验证操作模块源码
- httpclient4.3工具类
- instantclient_12_2.zip
- Bitvise SSH Client 8.23
- 免费的2014ftp暴力破解扫描工具可自动
评论
共有 条评论