20260324
This commit is contained in:
155
IAPV1.1/Driver/FATFS/data_handle.c
Normal file
155
IAPV1.1/Driver/FATFS/data_handle.c
Normal file
@ -0,0 +1,155 @@
|
||||
#include "bsp.h"
|
||||
data_common data_common1;
|
||||
FIL fp; /* Pointer to the blank file object */
|
||||
FATFS fs;
|
||||
UINT btw; /* Number of bytes to write */
|
||||
UINT bws;
|
||||
u32 send_pos=0;
|
||||
DIR DirInf;
|
||||
FILINFO FileInf;
|
||||
/*
|
||||
<EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>TF<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>fname
|
||||
dat
|
||||
len
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
*/
|
||||
void FATFS_WriteFile(char *fname,char *dat,u16 len) //д<><D0B4><EFBFBD>ݵ<EFBFBD>SD<53><44>
|
||||
{
|
||||
UINT br;
|
||||
char name[20];
|
||||
sprintf(name,"%s%s",fname,".txt");
|
||||
f_mount(0,&fs);
|
||||
f_open (&fp,fname,FA_READ|FA_WRITE|FA_OPEN_ALWAYS);
|
||||
f_lseek(&fp,f_size(&fp)); //<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ĩβ--<><D7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
f_write(&fp,dat,len,&br);
|
||||
f_close(&fp);
|
||||
f_mount(0,NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
<EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>TF<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD> ʱ<>䡢<EFBFBD><E4A1A2>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>γ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ρ<EFBFBD><CEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>fname
|
||||
dat
|
||||
len
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
*/
|
||||
FRESULT Data_Write_TF(void)//,char *dat,u16 len
|
||||
{
|
||||
FRESULT res;
|
||||
u8 i=0;
|
||||
char name[10]="\0";
|
||||
|
||||
f_mount(0,&fs);
|
||||
res=f_open(&fp,name,FA_READ | FA_WRITE | FA_OPEN_ALWAYS );//0:/
|
||||
if(res!=FR_OK) //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
{
|
||||
i=0;
|
||||
while((res!=FR_OK)&(i<100))
|
||||
{
|
||||
i++;
|
||||
f_close(&fp);
|
||||
f_mount(0,NULL);
|
||||
f_mount(0,&fs);
|
||||
res=f_open(&fp,name,FA_READ | FA_WRITE | FA_OPEN_ALWAYS );//0:/
|
||||
}
|
||||
if(i>98)return FR_NO_PATH ;
|
||||
|
||||
}
|
||||
f_lseek (&fp,f_size(&fp));
|
||||
f_write(&fp,data_common1.Pack_data,strlen(data_common1.Pack_data),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
f_close(&fp);
|
||||
|
||||
return FR_OK;
|
||||
}
|
||||
|
||||
/*************<2A>ļ<EFBFBD>ɾ<EFBFBD><C9BE>*******************************/
|
||||
FRESULT Fil_delete(char *names)
|
||||
{
|
||||
FRESULT result;
|
||||
char namebuff[10]="\0";
|
||||
sprintf(namebuff,"%s",names);
|
||||
f_mount(0,&fs);
|
||||
result = f_unlink(namebuff);
|
||||
f_close(&fp);
|
||||
f_mount(0,NULL);
|
||||
return result;
|
||||
}
|
||||
//<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC>Ĵ<EFBFBD>Сbyte
|
||||
u32 txt_size_read(char *fname)
|
||||
{
|
||||
// u8 i=0;
|
||||
FRESULT res;
|
||||
u32 txt_size;
|
||||
char name[20];
|
||||
sprintf(name,"%s%s",fname,".txt");
|
||||
res=f_mount(0,&fs);
|
||||
res=f_open(&fp,"APP.bin",FA_READ);//0:/
|
||||
if(res!=FR_OK) //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
{
|
||||
return FR_NO_FILE;
|
||||
}
|
||||
txt_size=f_size(&fp);
|
||||
res=f_close(&fp);
|
||||
f_mount(0,NULL);
|
||||
return txt_size;
|
||||
}
|
||||
/*
|
||||
<EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>TF<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡ
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>start_pos
|
||||
len
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ӡ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ض<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
*/
|
||||
void FATFS_Read_TF(char *fname,u32 start_pos,u32 len)
|
||||
{
|
||||
//u16 time1=0;
|
||||
FRESULT res;
|
||||
u32 tf_sendpos=0;
|
||||
u8 times;
|
||||
u32 i,lens_quotient,len_remainder;//<2F>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t Tf_Read_Buff[max_transmission+1];
|
||||
lens_quotient=len/max_transmission;
|
||||
len_remainder=len%max_transmission;
|
||||
memset(Tf_Read_Buff,0,sizeof(Tf_Read_Buff));
|
||||
res=f_mount(0,&fs);
|
||||
res=f_open(&fp,fname,FA_READ);
|
||||
times=0;
|
||||
while((res!=FR_OK)&(times<100))
|
||||
{
|
||||
res=f_close(&fp);
|
||||
res=f_mount(0,&fs);
|
||||
res=f_open(&fp,fname,FA_READ);
|
||||
times++;
|
||||
if(times==100)return;
|
||||
}
|
||||
f_lseek(&fp, start_pos+tf_sendpos);
|
||||
for(i=0;i<lens_quotient;i++)//<2F><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD>max_transmission<6F>ֽ<EFBFBD>
|
||||
{
|
||||
res=f_read(&fp,Tf_Read_Buff,max_transmission,&bws);
|
||||
FLASH_WriteWord(APP_ADDR+(i*max_transmission),Tf_Read_Buff,max_transmission);
|
||||
}
|
||||
memset(Tf_Read_Buff,0,sizeof(Tf_Read_Buff));
|
||||
f_read(&fp,Tf_Read_Buff,len_remainder,&bws);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
|
||||
FLASH_WriteWord(APP_ADDR+(i*max_transmission),Tf_Read_Buff,len_remainder);
|
||||
res=f_close(&fp);
|
||||
f_mount(0,NULL);
|
||||
|
||||
}
|
||||
|
||||
u8 App_check(void)
|
||||
{
|
||||
uint8_t buff[10];
|
||||
f_mount(0,&fs);
|
||||
f_open(&fp,"AAP.bin",FA_READ);
|
||||
f_read(&fp,buff,10,&bws);
|
||||
if(((*(vu32*)(buff+4))&0xFF000000)==0x08000000)//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ0X08XXXXXX.
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user