OpenEdv-开源电子网

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

电脑格式化,FATFS识别不了,FATFS格式化后,电脑识别 不了?

[复制链接]

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
发表于 2014-6-20 11:58:05 | 显示全部楼层 |阅读模式
5金钱
我前几天做了一个用stm32内部flash模拟的400K小U盘。
下来要搞FATFS文件系统,参照原子哥的例子,最后移植成功了,我把小U盘和FATFS放在了一起。
这样,插上USB和串口线,不久可以直接在PC上面复制,改动文件,然后通过串口调试助手,读取FATFS文件系统了么?

USB和FATFS都很好用,FATFS测试读写,建立文件夹,txt文件,都很好用。
问题是,我直接连接USB到电脑的话,电脑提示需要格式化这个200K的小U盘(后来加了文件系统flash占用大了,就把分配给小U盘的空间改小了)。
我选FAT格式的 4096字节簇大小(我查百度,fat32默认是4096字节的簇大小),格式化好了,当作U盘用很好。
但是我同事插上串口,用调试助手调试,打开文件夹什么的,就会出现0x0D错误,这个错误是no file system。也就是没有文件系统阿。

我通过f_mkfs函数(0,0,4096)将它用FATFS系统格式化,格式化之后,通过串口发送调试函数,都很好用。
但是PC上面的操作没用了,下次再插USB,电脑上会提示需要格式化。。

也就是说我做的固件        电脑和FATFS的格式化不一致阿。
有人遇到相同情况么,求指教阿,我继续去查查资料,读取flash看看

最佳答案

查看完整内容[请看2#楼]

回复【2楼】Badu_Space: --------------------------------- OK了,搞了一天,出成果还是很高兴得。现在两个文件系统可以同时用了,USB上微机对文件的操作,可以通过串口调试助手实时读出来, 串口发送命令操作FATFS,必须重新插USB才能在windows窗口中看到。 因为用的内部flash的话,只有200K空间,FAT32不支持这么小的空间,所以在上位机上格式化的时候,选择FAT格式, windows就将这块内部flash格式化成FAT12格式,每个sector&n ...
我可以一辈子都呆在家里不出来么?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2014-6-20 11:58:06 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
OK了,搞了一天,出成果还是很高兴得。现在两个文件系统可以同时用了,USB上微机对文件的操作,可以通过串口调试助手实时读出来,
串口发送命令操作FATFS,必须重新插USB才能在windows窗口中看到。
因为用的内部flash的话,只有200K空间,FAT32不支持这么小的空间,所以在上位机上格式化的时候,选择FAT格式,
windows就将这块内部flash格式化成FAT12格式,每个sector 2048bytes。

在FATFS文件系统中,我参照原来原子哥的例子并查找网上资料,把内部2K为一页的flash给虚拟成512byte一个sector,4个sector为一个block
的形式。

这样FATFS在检测flash的引导扇区时,检测到引导扇区的第11个偏移地址为0008,小端模式也就是0800=2048,(windows格式化成
fat16格式,就在这个地址写入每个扇区的字节数), 和文件系统内定义的512不一致,就认为没有文件系统阿。。返回0x0D错误代码。

windows的格式化操作写得是整个引导扇区。。。而fatfs的初始化函数只是在引导扇区中加入盘符volume,所以fatfs初始化的存储器,
是无法被windows识别的。

大概是这样,等我继续再搞搞,完全搞好了传个工程。
我可以一辈子都呆在家里不出来么?
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-6-20 12:46:00 | 显示全部楼层
芯片内部的没做过,外挂的flash和TF卡做过,都还行
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2014-6-20 16:41:09 | 显示全部楼层
FATFS要求扇区个数必须不小于128?只好扩充了下,128个扇区,每个扇区2K,也就是256K的U盘了。
 使用FATFS格式化内部flash,可以被windows识别,使用windows格式化后,也可以被fatfs识别。
 
 同时插上战舰班子的usb1,usb2之后,就可以在上微机上操作U盘文件,然后通过串口直接读出文件来测试fatfs。
 但是通过串口操作fatfs对文件的更改必须重新插拔USB才能反映在电脑上上。
我可以一辈子都呆在家里不出来么?
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-6-20 16:48:01 | 显示全部楼层
回复【3楼】杨帆:
---------------------------------
恭喜恭喜!!!!!期待
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-7-2
在线时间
0 小时
发表于 2014-7-2 13:53:59 | 显示全部楼层
mark...............
回复

使用道具 举报

3

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2012-10-15
在线时间
4 小时
发表于 2014-7-4 16:14:22 | 显示全部楼层
楼主,我也在做和你差不多类似的功能,把stm32内部flash模拟的70K小U盘。然后上fatfs,现在能用fatfs新建/删除 文件/文件夹,并在电脑上能正常读取。可是当程序执行新建文件/文件夹的时候,电脑端就无法正常删除和新建文件(就是在电脑端删除和新建文件后,重新插拔usb,删除的文件还在,在电脑上新建的文件不见了),楼主有遇到类型的问题吗? 求解答啊

已解决,内部FLASH在写入的时候上锁了···
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-1-20
在线时间
0 小时
发表于 2015-1-20 16:45:44 | 显示全部楼层
回复【7楼】Okbu:
---------------------------------
你好 stm32内部flash做U盘 有代码吗
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-1-19
在线时间
0 小时
发表于 2015-1-20 18:03:16 | 显示全部楼层
芯片内部的没做过,外挂的flash和TF卡做过,都还行
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-1-19
在线时间
0 小时
发表于 2015-1-20 18:09:29 | 显示全部楼层
片内部的没做过,外挂的flash和TF卡做过,都还行
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2015-5-31
在线时间
3 小时
发表于 2015-5-31 12:52:59 | 显示全部楼层
我的程序在红牛开发板上的ZET6可以虚拟成U盘;
但是在我自己的板子上VET6,无法格式化,怎么回事??
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2015-7-5 12:05:45 | 显示全部楼层
回复【11楼】gujiamao:
---------------------------------
这俩芯片应该是通用的吧?
估计是你的FLASH 驱动里面的操作没搞好,
可以参照我的帖子仿真一下每一步的操作,也熟悉下文件系统格式等。
按理说你这俩芯片只是管脚不一样,不大可能不行。
我可以一辈子都呆在家里不出来么?
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-3-6 10:30:32 | 显示全部楼层
本帖最后由 操作系统 于 2017-3-6 10:32 编辑

我也遇到了这个问题,左边的电脑的格式化后的MBR,右边是FATFS自己格式化的MBR.区别很大.
d:\1.bmp
高手指点一下,谢谢.

0扇区

0扇区
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-3-6 10:40:41 | 显示全部楼层
        if (LD_WORD(fs->win+BPB_BytsPerSec) != SS(fs))                /* (BPB_BytsPerSec must be equal to the physical sector size) */
                return FR_NO_FILESYSTEM;

  电脑格式化的大小应该要与物理的扇区大小一致.可以我的电脑没有512字节 的选项.好奇怪.默认2048,其它的都有.就是没有512
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-3-6 12:02:05 | 显示全部楼层
终于可以使用了.电脑格式化后,FATFS可以读取文件了.原因就是我的电脑没有512字节的选项,在格式化的时候,只好把电脑的扇区大小修改为2048这样子就可以使用了.应该FATFS(0.09)版本,处理得还不是很好.理论上应该可以不相同.
回复

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2016-4-28
在线时间
11 小时
发表于 2017-9-29 16:11:21 | 显示全部楼层
说好的工程呢,楼主发出看看
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-11-30
在线时间
92 小时
发表于 2019-10-28 15:58:09 | 显示全部楼层
遇到了一摸一样的问题,不知如何解决
回复

使用道具 举报

14

主题

141

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1126
金钱
1126
注册时间
2015-12-20
在线时间
119 小时
发表于 2019-10-28 21:15:05 | 显示全部楼层
刚开始研究,有没有参考源码?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-1 02:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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