新项目使用SDIO四线来控制tf卡 ,一开始板子还没到,一直用自己买的野火mini做初步的demo,用的是spi来读写tf卡一直没啥问题,这周板子终于到了,换成SDIO后发现挂载一直报错FR_DISK_ERR,网上找了好久,一直没法解决,最后发现还是自己读代码有用啊。。。。。。。。。
发现初始化一直有问题,按流程读了代码
SD_initialize()>>>>
BSP_SD_Init()>>>>
BSP_SD_IsDetected()>>>>
BSP_PlatformIsDetected() ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
uint8_t BSP_PlatformIsDetected(void) {
uint8_t status = SD_PRESENT;
/* Check SD card detect pin */
if(HAL_GPIO_ReadPin(SD_DETECT_GPIO_PORT, SD_DETECT_PIN) != GPIO_PIN_RESET)
{
status = SD_NOT_PRESENT;
}
/* USER CODE BEGIN 1 */
/* user code can be inserted here */
/* USER CODE END 1 */
return status;
}
将if判断注释掉就可以 如下 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
uint8_t BSP_PlatformIsDetected(void) {
uint8_t status = SD_PRESENT;
/* Check SD card detect pin */
// if(HAL_GPIO_ReadPin(SD_DETECT_GPIO_PORT, SD_DETECT_PIN) != GPIO_PIN_RESET)
// {
// status = SD_NOT_PRESENT;
// }
/* USER CODE BEGIN 1 */
/* user code can be inserted here */
/* USER CODE END 1 */
return status;
}
有关这个函数可以看下面的文章