无法在Fatfs中使用f_read()和f_lseek()

时间:2018-01-08 06:21:37

标签: spi fatfs stm32f0

我尝试通过SPI连接到带有stm32f091cctx MCU的2GB SD卡6级。使用fatFs库ver。 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);
}

1 个答案:

答案 0 :(得分:0)

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

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

PS:在HardFault_Handler和Error_Handler函数中打印一些内容,以查看出现问题的时间。