我试图连接到一个2GB的sd卡类6与stm32f091cctx单片机通过SPI。使用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);
}发布于 2018-03-19 12:01:08
您可能耗尽了堆大小,然后转到HardFault异常。
可以通过CubeMX ->项目设置或直接从**_startup.s文件增加堆大小。
PS:在HardFault_Handler和Error_Handler函数中打印一些东西,以查看什么地方出错了。
https://stackoverflow.com/questions/48145176
复制相似问题