论坛元老
 
- 积分
- 3554
- 金钱
- 3554
- 注册时间
- 2017-7-10
- 在线时间
- 389 小时
|
发表于 2018-4-27 18:19:46
|
显示全部楼层
参考
先判断SD卡的类型
SD_SendCMD(CMD8,0x1AA,0x87)
DRESULT disk_read (
BYTE drv, /* Physical drive nmuber (0..) */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address (LBA) */
BYTE count /* Number of sectors to read (1..255) */
)
{
//SD_ReadBlock(buff, sector << 9, 512); 改成
SD_ReadBlock(buff, sector, 512);
return RES_OK;
}
SD_Error SD_ReadBlock(uint8_t* pBuffer, uint32_t ReadAddr, uint16_t BlockSize)
{
uint32_t i = 0;
SD_Error rvalue = SD_RESPONSE_FAILURE;
/*!< SD chip select low */
SD_CS_LOW();
/*!< Send CMD17 (SD_CMD_READ_SINGLE_BLOCK) to read one block */
if(SD_TYPE!=SD_TYPE_V2HC) // SD v1.0(SDSC)
SD_SendCmd(SD_CMD_READ_SINGLE_BLOCK, ReadAddr <<=9, 0xFF);
else
SD_SendCmd(SD_CMD_READ_SINGLE_BLOCK, ReadAddr, 0xFF);
。。。
同理修改写的函数
|
|