0

我正在尝试通过 SPI 连接到带有 stm32f091cctx MCU 的 2GB sd 卡类 6。使用 fatFs 库版本。R0.13a 我能够安装驱动器并使用 f_mount 和 f_open 函数打开文件。但是当涉及到从文件中读取时,它只是冻结在 f_read 函数的某个地方。此外,当我尝试使用 f_lseek 更改指针的位置时,它再次冻结。f_lseek 仅在我将其编写为 f_lseek(&MyFile, 0) 时才有效。我的这部分代码如下:

if(FATFS_LinkDriver(&SD_Driver, SDPath) == 0)
{
    f_mount(&SDFatFs, (TCHAR const*)SDPath, 1);
    f_open(&MyFile, "SAMPLE1.WAV", FA_READ);
    f_lseek(&MyFile, 200);
    f_read(&MyFile, rtext, 1000, (UINT*)&bytesread);
}
4

1 回答 1

0

您可能用完了堆大小并转到 HardFault 异常。

您可以从 CubeMX -> 项目设置或直接从 **_startup.s 文件中增加 HEAP 大小。

PS:在 HardFault_Handler 和 Error_Handler 函数中打印一些东西,看看什么时候出错。

于 2018-03-19T12:01:08.823 回答