硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3897|回复: 6
收起左侧

[有问必答] 文件系统读取错误

[复制链接]

11

主题

8

回帖

11

积分

新手上路

积分
11
发表于 2017-6-8 11:00:04 | 显示全部楼层 |阅读模式
sd卡初始化挂载成功后,但是打开XBF文件时候,程序卡死在:
res = find_volume(&dj.fs, &path, (BYTE)(mode & ~FA_READ));

请教什么原因
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-6-8 14:11:52 | 显示全部楼层
你的另一个帖子已经回复了。
回复

使用道具 举报

11

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2017-6-9 10:29:25 | 显示全部楼层

回 eric2013 的帖子

eric2013:你的另一个帖子已经回复了。 (2017-06-08 14:11) 
硬汉哥,我用的你的工程芯片是407VG,我读写测试了下文件系统,有个很很想不通的地方,

这是液晶配置函数
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE , ENABLE);

这是SD卡配置函数
RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD, ENABLE);

我单独的测试液晶驱动,和sd卡没问题,但是我两个同时启动,SD卡读写就卡死,折腾了好久找不出原因
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-6-9 10:49:13 | 显示全部楼层

回 ttsqy 的帖子

ttsqy:硬汉哥,我用的你的工程芯片是407VG,我读写测试了下文件系统,有个很很想不通的地方,

这是液晶配置函数
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE , ENABLE);
....... (2017-06-09 10:29) 
可以这样搞,先把SD卡启动了,然后逐步启动部分液晶屏函数,一步一步排查,看看是执行了那步后,你的SD卡读写开始出现卡死问题。
回复

使用道具 举报

11

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2017-6-9 11:16:17 | 显示全部楼层

回 eric2013 的帖子

eric2013:可以这样搞,先把SD卡启动了,然后逐步启动部分液晶屏函数,一步一步排查,看看是执行了那步后,你的SD卡读写开始出现卡死问题。 (2017-06-09 10:49) 
LCD_InitHard();
result = f_mount(&fs, "0:/", 0);
if (result != FR_OK)
{
    return;
}

result = f_open(&file, "helloYou.txt",FA_CREATE_ALWAYS | FA_WRITE);
f_lseek(&file,file.fsize);
result = f_write(&file,text,strlen(text), &bw);
f_close(&file);
result = f_open(&file, "helloYou.txt", FA_OPEN_EXISTING | FA_READ);
result = f_read(&file, buffer2, sizeof(buffer2),&bw);

这是我的初始化程序,液晶初始化里面有一句RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE , ENABLE);
只要我启用时钟,SD卡的读写就卡死了,液晶程序还没跑,只是初始化就这样
回复

使用道具 举报

11

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2017-6-9 11:22:27 | 显示全部楼层

回 eric2013 的帖子

eric2013:可以这样搞,先把SD卡启动了,然后逐步启动部分液晶屏函数,一步一步排查,看看是执行了那步后,你的SD卡读写开始出现卡死问题。 (2017-06-09 10:49) 
void SD_LowLevel_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE , ENABLE);

RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD, ENABLE);

我把液晶初始化屏蔽掉,直接把那时钟函数放在SD卡初始化的时钟之前,这样也会卡死,想不出原因了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-6-10 01:08:24 | 显示全部楼层

回 ttsqy 的帖子

ttsqy:void SD_LowLevel_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;

....... (2017-06-09 11:22) 
不应该啊,这么神奇的错误,手头还有别的板子不,不行就同样的工程模板,换个板子试试,如果也有问题,那就是你的软件问题了,如果没有问题,就是你的板子设计有问题了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-16 21:18 , Processed in 0.040193 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表