本帖最后由 t9080350 于 2022-3-1 21:32 编辑
MCU=GD32F103RCT6SDIO模式=4BITS, POLLING
参考例程:GD32F10x_Firmware_Library_V2.2.2\Examples\SDIO\Read_write
可以通过SDIO初始化TF卡。
可以通过SDIO写入数据到TF卡。
在读数据时却出现CRC校验失败并跳出读block流程。
使用的是sd_error_enum sd_block_read(uint32_t *preadbuffer, uint32_t readaddr, uint16_t blocksize);
各位大佬有遇到过这个问题或者有什么思路吗?
希望得到指点,不胜感激!
if(SD_POLLING_MODE == transmode){
/* polling mode */
while(!sdio_flag_get(SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_RXORE | SDIO_FLAG_DTBLKEND | SDIO_FLAG_STBITE)){
if(RESET != sdio_flag_get(SDIO_FLAG_RFH)){
/* at least 8 words can be read in the FIFO */
for(count = 0; count < SD_FIFOHALF_WORDS; count++){
*(ptempbuff + count) = sdio_data_read();
}
ptempbuff += SD_FIFOHALF_WORDS;
}
}
/* whether some error occurs and return it */
if(RESET != sdio_flag_get(SDIO_FLAG_DTCRCERR)){
status = SD_DATA_CRC_ERROR;
sdio_flag_clear(SDIO_FLAG_DTCRCERR);
return status;
|