FATFS能读不能写

11 篇文章 0 订阅
4 篇文章 0 订阅

STM32F103RC芯片,SPI口读写SD卡,用的是正点原子的程序,操作过程中能正常读文件,写文件时报错FR_DISK_ERR,单步调试会有硬件错误,程序会挂掉。

不明就里的解决办法:增加了一段延时

文件diskio.c中,
#if _USE_WRITE
DRESULT disk_write (
    BYTE pdrv,            /* Physical drive nmuber (0..) */
    const BYTE *buff,    /* Data to be written */
    DWORD sector,        /* Sector address (LBA) */
    UINT count            /* Number of sectors to write (1..128) */
)
{
    u8 res=0;  
    if (!count)return RES_PARERR;//count²»ÄܵÈÓÚ0£¬·ñÔò·µ»Ø²ÎÊý´íÎó              
    switch(pdrv)
    {
        case SD_CARD:{//SD¿¨
            res=SD_WriteDisk((u8*)buff,sector,count);
            DelayMs(3);//增加了这条延时,测试延时1ms写不成功,延时1.8ms写成功
            break;
        }
        case EX_FLASH://Íⲿflash
//            for(;count>0;count--)
//            {                                            
//                SPI_Flash_Write((u8*)buff,sector*FLASH_SECTOR_SIZE,FLASH_SECTOR_SIZE);
//                sector++;
//                buff+=FLASH_SECTOR_SIZE;
//            }
//            res=0;
            break;
        default:
            res=1; 
    }
    //´¦Àí·µ»ØÖµ£¬½«SPI_SD_driver.cµÄ·µ»Øֵת³Éff.cµÄ·µ»ØÖµ
    if(res == 0x00)return RES_OK;     
    else return RES_ERROR;    
}
#endif

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值