1、f_open报错码:FR_DISK_ERR
原因:读取SD卡令牌失败。
auto_mount-》check_fs(res=3)-》disk_read-》SD_ReadSingleBlock-》SD_ReceiveData。
u8 SD_ReceiveData(u8 *data, u16 len, u8 release)
{
u16 retry;
u8 r1;
SD_CS_ENABLE();
retry = 0;
do
{
r1 = SPI_ReadWriteByte(0xFF);
Usart1_Send_1_Byte(r1);//加入串口打印,则读令牌成功
Usart1_Send_1_Byte(13);
retry++;
if(retry>4000)
{
SD_CS_DISABLE();
return 1;
}
}while(r1 != 0xFE);
2、f_open报错码:FR_NO_FILESYSTEM
auto_mount-》check_fs(res=2)
3、打印读取的扇区0数据,发现错误。并且数据令牌0xFE读取正常。
4、CMD17的r1==0x0
5、spi时钟频率:
最小频率:Fpclk/256。