本帖最后由 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;
|