SDMMC3在
STM32MP157F-EV1 板上不工作。
我不确定出了什么问题。
的
我可以确认 SDMMC3_CK/CMD/D0 信号是通过示波器输入和输出的,
但是 SDMMC_FIFO 是空的。
以下代码是stm32mp1xx_hal_sd.c中SD_SendSDStatus函数的一部分
- static uint32_t SD_SendSDStatus(SD_HandleTypeDef *hsd, uint32_t *pSDstatus)
- {
- :
- :
- :
- /* Send ACMD13 (SD_APP_STAUS) with argument as card's RCA */
- errorstate = SDMMC_CmdStatusRegister(hsd->Instance);
- if(errorstate != HAL_SD_ERROR_NONE)
- {
- hsd->ErrorCode |= HAL_SD_ERROR_NONE;
- return errorstate;
- }
- /* Get status data */
- while(!__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXOVERR | SDMMC_FLAG_DCRCFAIL | SDMMC_FLAG_DTIMEOUT | SDMMC_FLAG_DATAEND))
- {
- if(__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXFIFOHF))
- {
- for(count = 0U; count < 8U; count++)
- {
- *pData = SDMMC_ReadFIFO(hsd->Instance); ★★★NOT REACHABLE!!!★★★
- pData++;
- }
- }
- if((HAL_GetTick() - tickstart) >= SDMMC_DATATIMEOUT)
- {
- return HAL_SD_ERROR_TIMEOUT;
- }
- }
- :
- :
- :
- return HAL_SD_ERROR_NONE;
- }
的
这些是使用的 SDMMC 终端。
- PF0:SDMMC3_D0(已修改)
- PF1:SDMMC3_CMD(默认)
- PG15:SDMMC3_CK(默认)
[笔记]
STM32CubeMX 自动生成
- PD1:SDMMC3_D0
- PF1:SDMMC3_CMD
- PG15:SDMMC3_CK