This commit is contained in:
2026-04-23 10:50:18 +08:00
commit a436fda935
844 changed files with 272643 additions and 0 deletions

View 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;
}