Kaito.Chen 2021-06-30 10:15 采纳率: 0%
浏览 41

#stm32 为什么SD卡位置够缺无法再f_write数据进去?

操作写入读取的部分代码如下

FIL mf; 
FATFS fs;  
UINT brr;
u16 fatbuf[512][24]={0};

//自定义 20种方法
volatile u16 custom[20][24]={0};  //[20组自定义][0-5步骤 6-11时间 12-17温度 18-23剂量]

//自定义 缓冲数组 20种方法
volatile u16 custom_buffer[20][24]={0};  //[20组自定义][0-5步骤 6-11时间 12-17温度 18-23剂量]

//-------------写入SD卡数据----------------//
void BufferSave(void)    //储存缓冲区的值到SD卡
{
    //保存步骤
    CardSave(custom_buffer[Page][0],Page+1,0);
    CardSave(custom_buffer[Page][1],Page+1,1);
    CardSave(custom_buffer[Page][2],Page+1,2);
    CardSave(custom_buffer[Page][3],Page+1,3);
    CardSave(custom_buffer[Page][4],Page+1,4);
    CardSave(custom_buffer[Page][5],Page+1,5);

    //保存时间
    CardSave(custom_buffer[Page][6],Page+1,6);
    CardSave(custom_buffer[Page][7],Page+1,7);
    CardSave(custom_buffer[Page][8],Page+1,8);
    CardSave(custom_buffer[Page][9],Page+1,9);
    CardSave(custom_buffer[Page][10],Page+1,10);
    CardSave(custom_buffer[Page][11],Page+1,11);
    
    //保存温度
    CardSave(custom_buffer[Page][12],Page+1,12);
    CardSave(custom_buffer[Page][13],Page+1,13);
    CardSave(custom_buffer[Page][14],Page+1,14);
    CardSave(custom_buffer[Page][15],Page+1,15);
    CardSave(custom_buffer[Page][16],Page+1,16);
    CardSave(custom_buffer[Page][17],Page+1,17);
    
    //保存剂量
    CardSave(custom_buffer[Page][18],Page+1,18);
    CardSave(custom_buffer[Page][19],Page+1,19);
    CardSave(custom_buffer[Page][20],Page+1,20);
    CardSave(custom_buffer[Page][21],Page+1,21);
    CardSave(custom_buffer[Page][22],Page+1,22);
    CardSave(custom_buffer[Page][23],Page+1,23);
}
//-------------写入SD卡数据----------------//
//-------------读取SD卡数据----------------//
void ReadPara(void)
{
    
    f_mount(&fs,"0:",1);                     //挂载SD卡 
    f_open(&mf,"0:/pre.txt",FA_READ);  //0:/LICENSE.txt
    f_read(&mf, fatbuf,512, &brr);
    
    channel_WastePump=fatbuf[0][0]; //读取端口值
    channel_AcidPump=fatbuf[0][1]; //读取端口值
    channel_WaterPump=fatbuf[0][2]; //读取端口值
    channel_Blower=fatbuf[0][3]; //读取端口值
    
    
    //读取自定义
    //步骤
    custom[Page][0]=fatbuf[Page+1][0];
    custom[Page][1]=fatbuf[Page+1][1]; 
    custom[Page][2]=fatbuf[Page+1][2]; 
    custom[Page][3]=fatbuf[Page+1][3]; 
    custom[Page][4]=fatbuf[Page+1][4]; 
    custom[Page][5]=fatbuf[Page+1][5]; 
    
    //时间
    custom[Page][6]=fatbuf[Page+1][6];
    custom[Page][7]=fatbuf[Page+1][7];
    custom[Page][8]=fatbuf[Page+1][8];
    custom[Page][9]=fatbuf[Page+1][9];
    custom[Page][10]=fatbuf[Page+1][10];
    custom[Page][11]=fatbuf[Page+1][11];
    
    //保存温度
    custom[Page][12]=fatbuf[Page+1][12];
    custom[Page][13]=fatbuf[Page+1][13];
    custom[Page][14]=fatbuf[Page+1][14];
    custom[Page][15]=fatbuf[Page+1][15];
    custom[Page][16]=fatbuf[Page+1][16];
    custom[Page][17]=fatbuf[Page+1][17];
    
    //保存剂量
    custom[Page][18]=fatbuf[Page+1][18];
    custom[Page][19]=fatbuf[Page+1][19];
    custom[Page][20]=fatbuf[Page+1][20];
    custom[Page][21]=fatbuf[Page+1][21];
    custom[Page][22]=fatbuf[Page+1][22];
    custom[Page][23]=fatbuf[Page+1][23];
    
    f_close(&mf);
    
}
//-------------读取SD卡数据----------------//

SD卡是16G的卡,然后读取到fatbuf[11][17]之后就开始没办法写入进去了,怎么读取都是0 Page是一个页码的变量 取值范围是0-20 希望有大佬帮一下忙 本人对fatfs文件系统还不是特别懂

  • 写回答

2条回答 默认 最新

  • Kaito.Chen 2022-08-29 15:22
    关注

    已解决此问题,有需要了解的小伙伴可以看我主页的文章

    评论

报告相同问题?

悬赏问题

  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题
  • ¥15 使用dify通过OpenAI 的API keys添加OpenAI模型时报了“Connection Error”错误