OpenEdv-开源电子网

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

各路神仙请点进来,SD卡的读写问题

[复制链接]

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2017-9-5 18:15:16 | 显示全部楼层 |阅读模式
1金钱
先贴代码:
  /*******************************SD卡读写测试******************************/
          for(i=0;i<512;i++)
         {
          sd_read[i] = 0;
                sd_write[i] = i;
         }  
         
         temp = SD_ReadDisk(sd_read,0,1);
         printf("\r\n%d\r\n",temp);
         printf("\r\nSD Card读扇区0:\r\n");
          for(i=0;i<512;i++)
         {
          printf("0x%02x ",sd_read[i]);
         }

         temp = SD_WriteDisk(sd_write,1,1);
         printf("\r\n%d\r\n",temp);
         printf("\r\nSD Card读扇区1:\r\n");
          
         SD_ReadDisk(sd_read,1,1);
         
         for(i=0;i<512;i++)
         {
          printf("0x%02x ",sd_read[i]);
         }
         
         while(1);



这段代码用来测试SD卡的读写功能的,读出的数据打印串口调试助手。现在问题是,能成功读出扇区0的数据,但是读取扇区1的数据时,全为0。

代码用的是原子战舰V3的代码,我估计是写数据不成功。会不会是sd卡被写保护了呢?

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-9-5 18:15:17 | 显示全部楼层
a3748622 发表于 2017-9-6 14:31
原子哥,我在战舰上烧录了SD卡的库函数版本代码,将查询模式改为DMA模式

                 errorstatu ...

用寄存器版本
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-9-6 00:10:34 | 显示全部楼层
是我们开发板么?
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
 楼主| 发表于 2017-9-6 09:15:25 | 显示全部楼层
正点原子 发表于 2017-9-6 00:10
是我们开发板么?

自己画的板子,SDIO接口跟原子战舰V3一样的。我用一张大卡插进战舰,可成功读写。然后在魔术棒哪里把MCU换成F103VC系列,烧到自己板子,小的TF卡能读不能写数据
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
 楼主| 发表于 2017-9-6 14:31:33 | 显示全部楼层
正点原子 发表于 2017-9-6 00:10
是我们开发板么?

原子哥,我在战舰上烧录了SD卡的库函数版本代码,将查询模式改为DMA模式

                 errorstatus=SD_SetDeviceMode(SD_DMA_MODE);        //设置为DMA模式
                //errorstatus=SD_SetDeviceMode(SD_POLLING_MODE);        //设置为查询模式

其他一切没改动,为什么串口不打印SD卡扇区0的数据了,按KEY0没反应
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-19 22:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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