OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4693|回复: 4

SD卡实验 SD_ReadDsik问题

[复制链接]

62

主题

353

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1426
金钱
1426
注册时间
2021-4-28
在线时间
535 小时
发表于 2021-7-18 20:14:46 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

56

主题

343

帖子

0

精华

高级会员

Rank: 4

积分
977
金钱
977
注册时间
2016-3-8
在线时间
267 小时
发表于 2021-7-18 20:14:47 | 显示全部楼层
CJC529 发表于 2021-7-18 20:16
视频里面说把扇区地址转换为字节地址 不能理解到底是怎么样个转换法

左移9就是*512 。 一个扇区是512字节。
回复

使用道具 举报

62

主题

353

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1426
金钱
1426
注册时间
2021-4-28
在线时间
535 小时
 楼主| 发表于 2021-7-18 20:16:06 | 显示全部楼层
//读SD卡
//buf:读数据缓存区
//sector:扇区地址
//cnt:扇区个数       
//返回值:错误状态;0,正常;其他,错误代码;                                                                   
u8 SD_ReadDisk(u8*buf,u32 sector,u8 cnt)
{
        u8 sta=SD_OK;
        long long lsector=sector;            
        u8 n;
        lsector<<=9;                         //这个左移九位 实属不能理解 求解答
        if((u32)buf%4!=0)
        {
                 for(n=0;n<cnt;n++)
                {
                         sta=SD_ReadBlock(SDIO_DATA_BUFFER,lsector+512*n,512);//单个sector的读操作
                        memcpy(buf,SDIO_DATA_BUFFER,512);
                        buf+=512;
                }
        }else
        {
                if(cnt==1)sta=SD_ReadBlock(buf,lsector,512);            //单个sector的读操作
                else sta=SD_ReadMultiBlocks(buf,lsector,512,cnt);//多个sector  
        }
        return sta;
}
回复

使用道具 举报

62

主题

353

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1426
金钱
1426
注册时间
2021-4-28
在线时间
535 小时
 楼主| 发表于 2021-7-18 20:16:49 | 显示全部楼层
视频里面说把扇区地址转换为字节地址 不能理解到底是怎么样个转换法
回复

使用道具 举报

62

主题

353

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1426
金钱
1426
注册时间
2021-4-28
在线时间
535 小时
 楼主| 发表于 2021-7-18 20:57:35 | 显示全部楼层
pdwdzz 发表于 2021-7-18 20:14
左移9就是*512 。 一个扇区是512字节。

清楚明白  谢谢
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-25 20:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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