首先声明为什么分为两个txt文件来存储
我开始定义的数组是float fatbuf[1024];
后面发现数组里超过fatbuf[256]后面的数据都无法保存,于是我查看了一番ff.c,在f_write和f_read里找到了答案:
读写的buff里定义了一个BYTE类型是8位的unsigne char,这就能解释的通为何只能保存数组的前256个数据,接下来我们只需要做一些简单的变更即可生成多个TXT文件并且将数据存储在里面。下面是实例:
1.定义两个数组(此处距离用到了两组数据)
我定义的para.txt是用来保存系统设置的参数,而method.txt是用来存储各种方法数据的参数。
/* FATFS */
FIL mf;
FATFS fs;
UINT brr;
float fatbuf[256]={0};
float fatbuf2[256]={0};
void ReadPara(uint8_t filename)
{
FRESULT res;
res=f_mount(&fs,"0:",1); //挂载SD卡
if(filename==para_txt){
res=f_open(&mf,"0:/para.txt",FA_READ|FA_OPEN_ALWAYS); //0:/para.txt
res=f_read(&mf, fatbuf,1024, &brr);
interface_number=fatbuf[_interface_number];
temp1_k=fatbuf[_temp1_k];
......
res=f_close(&mf);
}else if(filename==method_txt){
res=f_open(&mf,"0:/method.txt",FA_READ|FA_OPEN_ALWAYS); //0:/method.txt
res=f_read(&mf, fatbuf2,1024, &brr);
u8 mPage,mLine,mPara;
for(mPage=0;mPage<8;mPage++){//方法
if(mPage!=method_page) continue;
for(mLine=0;mLine<8;mLine++){//列
for(mPara=0;mPara<3;mPara++){//参数
Custom_para[mPage][mLine][mPara]=fatbuf2[_Custom_para+mPage*24+mLine*3+mPara];
}
}
}
res=f_close(&mf);
}
}