完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目的是想实现数据存储,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给擦了先么。。 |
|
相关推荐
5个回答
|
|
看一下格式化代码,记得是根据容量自动选择FAT12、FAT16或FAT32的
|
|
|
|
谢谢,确实是自动选取的。另外FAT12是不是没办法把一个1M以上的文件存进U盘里?我发现小文件都可以存,一存大的拔插就提示格式化了饿
|
|
|
|
|
|
|
|
|
|
|
|
fatfs是统称,fat12是其中一种,window会根据容量大小选择格式不一定都是fat32,你说的问题可能还是硬件读写的问题,你可以截一下看看错写哪个地方了.
W25写数据有个256字节对齐的限制,是不是这里没弄对 那个blocksize就是一个扇区的字节数,因为之后的访问都是以扇区为单位,修改成128会引起兼容的问题,没做过相关的实验. |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1016 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
787 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1174 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1643 浏览 1 评论
544 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 16:04 , Processed in 0.477031 second(s), Total 51, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号