FATFS文件系统生成多个txt文件存储数据,解决数组只保存数据前256个数据问题

首先声明为什么分为两个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);
    }
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值