STM32F105+FATFS_R0.13a 来读取U盘
在挂载U盘时:
f_mount(&fs_,"0:",0); 延迟挂载返回FR_OK
f_mount(&fs_,"0:",1); 直接挂载会返回FR_DISK_ERR错误
调试结果:读取指定文件时能读取出来,读取目录或浏览目录时会进入HardFault_Handler硬件错误函数
仿真后发现是因为f_mount进入的HardFault_Handler
查了一下进入HardFault_Handler的原因有:
1、数组越界
2、内存溢出,访问越界
3、堆栈溢出,程序跑飞
4、中断处理错误
这里不知道f_mount改怎么处理才能解决这个问题
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
OK了,我仿真到执行fno->altname[]就会进入HardFault_Handler盗版FATFS_R0.13a哈哈,标准定义被人注释了
// TCHAR altname[FF_SFN_BUF + 1];/* Altenative file name */
get_fileinfo (
DIR* dp, /* Pointer to the directory object */
FILINFO* fno /* Pointer to the file information to be filled */
)
typedef struct {
FSIZE_t fsize; /* File size */
WORD fdate; /* Modified date */
WORD ftime; /* Modified time */
BYTE fattrib; /* File attribute */
#if FF_USE_LFN
// TCHAR altname[FF_SFN_BUF + 1];/* Altenative file name */
// TCHAR fname[FF_LFN_BUF + 1]; /* Primary file name */
TCHAR fname[13]; /* Primary file name */
TCHAR* altname;/* Altenative file name */
#else
TCHAR fname[12 + 1]; /* File name */
#endif
} FILINFO;
一周热门 更多>