我正在尝试将 sd 卡与 STM32F4 连接,但无法正常工作,代码是使用 cubemx 开发的
- 接口为 sdio 1 位模式(由于管脚限制)
- SD 卡 8 Gb 格式化为默认分配大小
调试步骤:
我单步执行代码 fmount 是成功的,但是当我单步执行返回时fopen
出现错误代码。find_volume()
FR_NOT_READY
硬件连接:
我有带有 SPI 引脚的 arduino micro SD 分线板,所以连接是
- DI → SDIO_CMD
- DO → SDIO_D0
- SCLK → SDIO_SCLK
int main(void)
{
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_SDIO_SD_Init();
MX_FATFS_Init();
HAL_Delay(1000);
/* USER CODE BEGIN 2 */
if(f_mount(&mynewdiskFatFs,(const TCHAR*)SD_Path, 0) == FR_OK)
{
if(f_open(&MyFile, "abc.txt", FA_READ ) == FR_OK)
{
// GPIO_SetBits(GPIOD, GPIO_Pin_15);
if(f_read(&MyFile, wtext, sizeof(wtext), (void *)&wbytes) ==FR_OK);
{
f_close(&MyFile);
}
}
}
while (1)
{
}
}