谁能告诉我,我往SD卡数据时写的过程中总是死在SD_CmdResp1Error这个函数内,我用的是STM32F207的芯片,SDIO驱动。加Fatfs。用的是DMA方式传输数据的
使用的库函数是STM32FXX_HAL库。不知道各位有没有遇到这种问题,小弟很急啊。最近忙一个项目,现在这里都还没调好呢。,
static HAL_SD_ErrorTypedef SD_CmdResp1Error(SD_HandleTypeDef *hsd, uint8_t SD_CMD)
{
HAL_SD_ErrorTypedef errorState = SD_OK;
uint32_t response_R1;
//!!!!总是写的过程中会死在这个While循环中,找了好久都不知道是什么问题,
while(!__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_CCRCFAIL | SDIO_FLAG_CMDREND | SDIO_FLAG_CTIMEOUT))
{
}
if(__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_CTIMEOUT))
{
errorState = SD_CMD_RSP_TIMEOUT;
__HAL_SD_SDIO_CLEAR_FLAG(hsd, SDIO_FLAG_CTIMEOUT);
return errorState;
}
else if(__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_CCRCFAIL))
{
errorState = SD_CMD_CRC_FAIL;
__HAL_SD_SDIO_CLEAR_FLAG(hsd, SDIO_FLAG_CCRCFAIL);
return errorState;
}
我好像找到问题了,就是在写的过程中出现SD_CMD_RSP_TIMEOUT,命令响应超时才导致传输终止的,不知道各位有没有遇到这问题
一周热门 更多>