硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1084|回复: 2
收起左侧

[有问必答] SD卡使用f_write一次性写入30k字节的数据是否可行?

[复制链接]

5

主题

16

回帖

31

积分

新手上路

积分
31
发表于 2024-6-3 11:24:10 | 显示全部楼层 |阅读模式
如题,上头想减少sd卡的写入次数,所以先缓存到30k在一次性写入,但是我试过了,写入完成后去看只有前面几十字节的数据,这是怎么回事?求助


u8 SD_WriteDisk(u8*buf,u32 sector,u8 cnt)
{
        u8 sta=SD_OK;
        u8 n;
        long long lsector=sector;
        lsector<<=9;
        if((u32)buf%4!=0)
        {
        for(n=0;n<cnt;n++)
        {
                memcpy(SDIO_DATA_BUFFER,buf,512);
                 sta=SD_WriteBlock(SDIO_DATA_BUFFER,lsector+512*n,512);//单个sector的写操作
                buf+=512;
        }
        }else
        {
                if(cnt==1)sta=SD_WriteBlock(buf,lsector,512);            //单个sector的写操作
                else sta=SD_WriteMultiBlocks(buf,lsector,512,cnt);        //多个sector  
        }
        return sta;
}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-6-4 10:02:00 | 显示全部楼层
没问题,标准库的话,可以看看我们这个实现

继续提升STM32F4的4线SDIO DMA方式的读写稳定性,发布新版案例(2020-06-30)
https://forum.anfulai.cn/forum.p ... 8560&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-6-6 13:39:43 | 显示全部楼层
好的谢谢,莫名其妙又可以写入了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 05:56 , Processed in 0.036370 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表