打印
[AI]

STM32格式化代码问题

[复制链接]
1072|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duo点|  楼主 | 2024-1-26 10:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目的是想实现数据存储,U盘拷出来,大致上是可以做出来了,不过发现还是有些小问题。
我的程序是直接用f_mkfs格式化了我的FLASH(W25Q64),也就是说插电脑不会再提示格式化。
数据使用FATFS的f_write存到一个文件"xxx.txt"中,,正常存数,U盘拷出来没问题,但是如果从PC机上复制一个文件进去U盘,重新拔插就会提示格式化了。。也就是说没办法正常当U盘使了。
如果把FATFS的程序注释掉,只使用U盘,那么可以正常存拿。
网上查了一圈的资料,发现有人说WINDOWS下格式化U盘是FAT32的格式,而FATFS的格式化是格式化成FAT12格式,那有没有办法即可以使用FATFS存数据,又可以正常的当U盘用,从电脑复制东西进来呢?

  顺便再问些其他的问题,FATFS的f_ioctl里面有个case GET_BLOCK_SIZE: 这个应该返回什么,W25Q64的BLOCK的大小是64KB,BLOCK的数量是128,但我在网上查了一圈正点原子那用同样的FLASH是8,差别很大。还有为什么我看很多FATFS教程里面,在diskio.c的dis_write里面,调用FLASH的写函数之前为什么没有擦除???FLASH的写不是必须要把当前的sector给擦了先么。。

使用特权

评论回复
沙发
冰春彩落下| | 2024-3-21 08:58 | 只看该作者
FATFS库格式化的默认文件系统是FAT12或FAT16,而大多数U盘使用的是FAT32文件系统

使用特权

评论回复
板凳
别乱了阵脚| | 2024-3-21 11:00 | 只看该作者
一般如果格式不一样,这可能导致在PC上重新插拔后提示格式化

使用特权

评论回复
地板
江河千里| | 2024-3-21 13:00 | 只看该作者
你可以尝试手动将FLASH格式化为FAT32文件系统,而不是使用FATFS库的默认格式

使用特权

评论回复
5
暖了夏天蓝了海| | 2024-3-21 15:00 | 只看该作者
可以使用专门的格式化工具,如Windows的磁盘管理工具或者第三方的格式化工具来格式化FLASH为FAT32文件系统。

使用特权

评论回复
6
flycamelaaa| | 2024-3-21 16:40 | 只看该作者
格式化U盘为FAT32,以确保Windows可以正确识别和使用。

使用特权

评论回复
7
淡漠安然| | 2024-3-21 17:00 | 只看该作者
关于FATFS的f_ioctl里的case GET_BLOCK_SIZE,这个应该返回的是逻辑块的大小,而不是FLASH芯片的物理块大小

使用特权

评论回复
8
三生万物| | 2024-3-21 19:00 | 只看该作者
在W25Q64这样的SPI Flash中,逻辑块的大小通常是4KB,而物理块的大小是64KB。因此,你应该返回4KB作为逻辑块的大小。

使用特权

评论回复
9
powerantone| | 2024-3-21 19:00 | 只看该作者
检查你的FATFS配置和底层驱动实现,确保它们能够正确地处理来自Windows的文件操作。

使用特权

评论回复
10
光辉梦境| | 2024-3-21 21:00 | 只看该作者
关于为什么在diskio.c的disk_write里面没有擦除操作,这可能是因为FATFS库已经封装了擦除操作

使用特权

评论回复
11
远山寻你| | 2024-3-22 01:00 | 只看该作者
在一些Flash芯片中,写入数据之前确实需要先擦除对应的扇区,但是FATFS库通常会在写入数据时自动进行擦除操作,因此在disk_write里面可能不需要手动擦除

使用特权

评论回复
12
夜阑风雨| | 2024-3-22 07:00 | 只看该作者
直接跑例程就好了,就知道是什么逻辑了

使用特权

评论回复
13
一秒落纱| | 2024-3-22 09:00 | 只看该作者
我觉得可以改变一下你的U盘格式,可能就不会出现提示格式化问题

使用特权

评论回复
14
szt1993| | 2024-3-25 14:57 | 只看该作者
大多数U盘使用的是FAT32文件系统,跟ST的需求貌似有区别

使用特权

评论回复
15
Pretext| | 2024-3-25 15:45 | 只看该作者
估计是比较困难,一般来说存储格式不同就不好处理。

使用特权

评论回复
16
鹿鼎计| | 2024-3-25 16:02 | 只看该作者
看看windows端有没有可以打开FAT16的U盘软件

使用特权

评论回复
17
digit0| | 2024-3-25 16:48 | 只看该作者
估计想要实现还是挺困难的,建议想想别的方案

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

431

主题

1623

帖子

1

粉丝