OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5094|回复: 6

今天遇到个奇怪的问题 SD 能进行文件读写 FLASH(Q64)不能 有没有同仁遇见过啊?

[复制链接]

7

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-2-11
在线时间
14 小时
发表于 2014-3-8 16:24:58 | 显示全部楼层 |阅读模式
说明: 0:SD卡
          1:FLASH
同时SD驱动  和 FLASH 是原子哥的

//////////////////////////////////////////////////////////////////////////////
    SD卡  和 Flash 文件系统挂载是成功了de

   if(!f_mount(0,fs[0])) //挂载SD卡 此处与diskio.c有关
{
GUI_DispStringAt("SD ---------------OK", 10, 50);
}
  if(!f_mount(1,fs[1])) //挂载FLASH. 此处与diskio.c有关
{
GUI_DispStringAt("FLASH ------------OK", 10, 80);
}

//////////////////////////////////////////////////////////////////////////////
…………………………

//////////////////////////////////////////////////////////////////////////////

// 在SD卡下:const u8 * TP_PATH = "0:/Touch/TP.txt"    // 下面的读写成功
// 在FLASH:
const u8 * TP_PATH = "1:/Touch/TP.txt"     // 下面的读写不成功

const u8 * TP_PATH = "0:/Touch/TP.txt"; 

// 保存触摸屏校准系数
void Save_TP_Adjust_Ratio(_m_tp_dev dev)
{
u8 res = 0;
u16 bw = 0;
FIL fd;
res = f_open(&fd, (const TCHAR*)TP_PATH, FA_OPEN_ALWAYS|FA_WRITE);
if(!res)
{
GUI_DispStringAt("write TP.txt", 10, 140);
res = f_write(&fd, &tp_dev, sizeof(tp_dev), (UINT *)&bw);
}
f_close(&fd);
}

// 读取触摸屏校准系数
void Read_TP_Adjust_Ratio(void)
{
u8 res = 0;
u16 br = 0;
FIL fd;

res = f_open(&fd, (const TCHAR*)TP_PATH, FA_READ);

if(!res)
{
GUI_DispStringAt("Read TP.txt", 10, 100);
res = f_read(&fd, &tp_dev, sizeof(tp_dev), (UINT *)&br);
}
f_close(&fd);
}

//////////////////////////////////////////////////////////////////////////////

有没有人  遇见这种情况啊?



为可睡懒觉,而奋斗终身!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-3-8 19:39:32 | 显示全部楼层
你的25Q64,还有空间么?错误返回什么错误代码?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-2-11
在线时间
14 小时
 楼主| 发表于 2014-3-9 01:29:58 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
返回写入 直接 永远都是0  哎!

最后没有办法  使用用了芯片整体擦除    还是不行

实在没有办法 我用你的那个实验50 USB读写器 连接电脑对FLASH强制进行了格式了  才能进行正常的操作

这是什么问题啊?  你遇见过么 原子哥?
为可睡懒觉,而奋斗终身!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-3-9 10:39:14 | 显示全部楼层
回复【3楼】爱睡懒觉:
---------------------------------
我碰到只是FLASH满了,或者FLASH要擦除的扇区太多了,才会出现这种情况。
一般将芯片全部擦除一遍,然后格式化一下,就解决了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-2-11
在线时间
14 小时
 楼主| 发表于 2014-3-9 13:20:47 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
谢谢原子哥
嗯  我现在就是这么解决的  只是我在想  怎么进行了全部擦除之后  还要进行格式化呢?
不进行格式化 也不行!  关于这点我是不太清楚
为可睡懒觉,而奋斗终身!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-3-9 14:43:16 | 显示全部楼层
回复【5楼】爱睡懒觉:
---------------------------------
格式化并不会去擦除芯片,这个你格式化sd卡也不会将所有数据全部删掉,所以所谓的数据恢复软件就还是可以找回来之前的数据。
而如果你擦除芯片,那么就什么数据都拜拜了...任何工具无法恢复。
所以:格式化!=擦除。
但是擦除后,文件系统也被破坏掉了,所以需要重新格式化一下。

先擦除再格式化=彻底清净了...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-2-11
在线时间
14 小时
 楼主| 发表于 2014-3-9 22:43:19 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
清楚了  谢谢原子哥
为可睡懒觉,而奋斗终身!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-14 02:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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