GD32F103RCT6 SDIO读block出现CRC校验失败

[复制链接]
 楼主| t9080350 发表于 2022-3-1 16:31 | 显示全部楼层 |阅读模式
本帖最后由 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);
各位大佬有遇到过这个问题或者有什么思路吗?
希望得到指点,不胜感激!

  1. if(SD_POLLING_MODE == transmode){
  2.         /* polling mode */
  3.         while(!sdio_flag_get(SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_RXORE | SDIO_FLAG_DTBLKEND | SDIO_FLAG_STBITE)){
  4.             if(RESET != sdio_flag_get(SDIO_FLAG_RFH)){
  5.                 /* at least 8 words can be read in the FIFO */
  6.                 for(count = 0; count < SD_FIFOHALF_WORDS; count++){
  7.                     *(ptempbuff + count) = sdio_data_read();
  8.                 }
  9.                 ptempbuff += SD_FIFOHALF_WORDS;
  10.             }
  11.         }
  12.         
  13.         /* whether some error occurs and return it */
  14.         if(RESET != sdio_flag_get(SDIO_FLAG_DTCRCERR)){
  15.             status = SD_DATA_CRC_ERROR;
  16.             sdio_flag_clear(SDIO_FLAG_DTCRCERR);
  17.             return status;




 楼主| t9080350 发表于 2022-3-1 21:32 | 显示全部楼层
有人吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

21

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部