stm32 FTP如何将服务器建立到SD卡下(已挂载fat32文件系统)的问题
现在以及实现了32芯片做FTP服务器,测试读写文件也都正常,也成功挂载了FAT32文件系统,测试功能也正常,但是现在挂载服务器的目录是在根目录下(代码附在最下面),而挂载文件系统的位置我也选在了根目录下,但是为何FTP服务器却无法显示SD卡中的文件。
这是挂载文件系统时所指定的目录
res_sd = f_mount(&fs,"0:/",1);
void CH563NET_FTPConnect( void )
{
u8 i = 0;
CH563NET_FTPInitVari( );
//i = ETH_LibInit(IPAddr,GWIPAddr,IPMask,MACAddr);
mStopIfError(i);
printf("CH563NET_LibInit Success\n");
CH563NET_FTPCtlServer( );
}
void CH563NET_FTPInitVari( )
{
FTP *pFTP;
u8
i,j;
pFTP = &ftp;
memset((void *)pFTP,'\0',sizeof(ftp));
ftp.SocketDatMonitor = 255;
ftp.SocketDatConnect = 255;
ftp.SocketCtlMonitor = 255;
ftp.SocketCtlConnect = 255;
memset((void *)SourIP,'\0',sizeof(SourIP));
j = 0;
for(i=0;i<4;i++){ /* ½«Ê®½øÖƵÄIPµØַת»»ËùÐèÒªµÄ×Ö·û¸ñʽ */
if( IPAddr[i]/100 ){
SourIP[j++] = IPAddr[i]/100 + '0';
SourIP[j++] = (IPAddr[i]%100)/10 + '0' ;
SourIP[j++] = IPAddr[i]%10 + '0';
}
else if( IPAddr[i]/10 ){
SourIP[j++] = IPAddr[i]/10 + '0';
SourIP[j++] = IPAddr[i]%10 + '0';
}
else SourIP[j++] = IPAddr[i]%10 + '0';
SourIP[j++] = '.';
}
mInitFtpList( );
}
void mInitFtpList( void )
{
memset((void *)RootBuf1,'\0',sizeof(RootBuf1));
sprintf(RootBuf1,Atest);
memset((void *)RootBuf2,'\0',sizeof(RootBuf2));
sprintf(RootBuf2,Btest);
memset((void *)RootBuf3,'\0',sizeof(RootBuf3));
memset((void *)RootBuf4,'\0',sizeof(RootBuf4));
memset((void *)UserBuf,'\0',sizeof(UserBuf));
sprintf(UserBuf,Ctest);
memset((void *)ListRoot,'\0',sizeof(ListRoot));
sprintf(ListRoot,"%s%4d A.txt\r\n%s%4d B.txt\r\n%sUSER\r\n",FileNature,
strlen(RootBuf1),FileNature,strlen(RootBuf1),ListNature); /* 当前目录 */
memset((void *)ListUser,'\0',sizeof(ListUser));
sprintf(ListUser,"%s%4d H.txt\r\n",FileNature,strlen(UserBuf)); /* 下一级目录 */
memset((void *)NameFile,'\0',sizeof(NameFile));
sprintf(NameFile,"USER\r\n");
memset((void *)NameList,'\0',sizeof(NameList));
sprintf(NameList,"A.txt#0B.txt#1");
ftp.BufStatus |= 0x03; /* buf1和buf2不为空 */
}
void CH563NET_FTPCtlServer(void)
{
u8 i;
SOCK_INF TmpSocketInf;
memset((void *)&TmpSocketInf,0,sizeof(SOCK_INF));
TmpSocketInf.SourPort = 21;
TmpSocketInf.ProtoType = PROTO_TYPE_TCP;
i = WCHNET_SocketCreat(&SocketId1,&TmpSocketInf);
mStopIfError(i);
ftp.SocketCtlMonitor = SocketId1;
i = WCHNET_SocketListen(SocketId1);
mStopIfError(i);
printf("SocketId1 ctl:%d\n",(u16)SocketId1);
printf("FTP Connect Success\r\n");
mStopIfError(i);
}