OpenEdv-开源电子网

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

SPI驱动的SD卡, 创建文件夹返回错误FR_DISK_ERR

[复制链接]

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2016-4-8
在线时间
27 小时
发表于 2016-5-28 10:43:16 | 显示全部楼层 |阅读模式
1金钱
SPI驱动正常,SD卡挂载正常,但是运行到f_mkdir函数时,总是返回错误FR_DISK_ERR 调试跟踪发现是  dcl==0xFFFFFFFF导致的,求解决办法。
f_open    f_sync   运行正常,但是f_write  也会返回错误 FR_DISK_ERR   
最后创建的文件打开提示  文件或目录损坏且无法读取   
SD卡的事情困惑我一周了。。。求帮忙!!!
QQ图片20160528102834.png
QQ图片20160528103008.png
QQ图片20160528104157.png

最佳答案

查看完整内容[请看2#楼]

重新格式化SD卡,之前分配的单元大小是32K 改成4K就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2016-4-8
在线时间
27 小时
 楼主| 发表于 2016-5-28 10:43:17 | 显示全部楼层
zhangyuman 发表于 2016-5-29 10:26
解决问题了,重新格式化SD

重新格式化SD卡,之前分配的单元大小是32K 改成4K就可以了
回复

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2016-4-8
在线时间
27 小时
 楼主| 发表于 2016-5-28 10:57:55 | 显示全部楼层
我是买的SD卡模块,用10cm长的杜邦线接在探索者开发板上的,和这个有关系吗
回复

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2016-4-8
在线时间
27 小时
 楼主| 发表于 2016-5-28 17:04:28 | 显示全部楼层
[mw_shl_code=c,true]u16 test_t=0;
u8 SD_SendBlock(u8*buf,u8 cmd)
{       
        u16 t;                            
        if(SD_WaitReady())return 1;//μè′y×¼±¸ê§D§
        SD_SPI_ReadWriteByte(cmd);
        if(cmd!=0XFD)//2»êǽáêøÖ¸áî
        {
                for(t=0;t<512;t++)
                SPI2_ReadWriteByte(buf[t]);//ìá&#184;&#223;&#203;ù&#182;è,&#188;&#245;éùoˉêy′&#171;2&#206;ê±&#188;&#228;
            SD_SPI_ReadWriteByte(0xFF);//o&#246;&#194;&#212;crc
                t=SD_SPI_ReadWriteByte(0xFF);//&#189;óê&#213;&#207;ìó|
                test_t=t;
                if((t&0x1F)!=0x05)return 2;//&#207;ìó|′í&#206;ó                                                                                                                      
        }                                                                                                                                                                       
    return 0;//D′è&#235;3é1|
}[/mw_shl_code]


测试发现 这个t 的值一直为  0X00FF  什么情况  
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-5-28 19:58:55 | 显示全部楼层
杜邦线有一定影响,降低下SPI频率试试
回复

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2016-4-8
在线时间
27 小时
 楼主| 发表于 2016-5-28 20:29:40 | 显示全部楼层
正点原子 发表于 2016-5-28 19:58
杜邦线有一定影响,降低下SPI频率试试

把高速和低速都调成了256分频也没有用。。。  SPI有时候接收不到数据   超时返回
[mw_shl_code=applescript,true]//SPIx &#182;áD′ò&#187;&#184;&#246;×&#214;&#189;ú
//TxData:òaD′è&#235;μ&#196;×&#214;&#189;ú
//·μ&#187;&#216;&#214;μ:&#182;áè&#161;μ&#189;μ&#196;×&#214;&#189;ú
u8 SPI2_ReadWriteByte(u8 TxData)
{               
        u8 retry=0;                                        
        while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET) //&#188;ì2é&#214;&#184;&#182;¨μ&#196;SPI±ê&#214;&#190;&#206;&#187;éè&#214;&#195;ó&#235;·&#241;:·¢&#203;í&#187;o′&#230;&#191;&#213;±ê&#214;&#190;&#206;&#187;
                {
                retry++;
                if(retry>200)return 0;
                }                          
        SPI_I2S_SendData(SPI2, TxData); //í¨1yíaéèSPIx·¢&#203;íò&#187;&#184;&#246;êy&#190;Y
        retry=0;

        while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)//&#188;ì2é&#214;&#184;&#182;¨μ&#196;SPI±ê&#214;&#190;&#206;&#187;éè&#214;&#195;ó&#235;·&#241;:&#189;óêü&#187;o′&#230;·&#199;&#191;&#213;±ê&#214;&#190;&#206;&#187;
                {
                retry++;
                if(retry>200)return 0;
                }                                                              
        return SPI_I2S_ReceiveData(SPI2); //·μ&#187;&#216;í¨1ySPIx×&#238;&#189;ü&#189;óê&#213;μ&#196;êy&#190;Y                                            
}[/mw_shl_code]
回复

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2016-4-8
在线时间
27 小时
 楼主| 发表于 2016-5-29 10:26:49 | 显示全部楼层
解决问题了,重新格式化SD
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 09:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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