[STM32F1] STM32+FATFS+FLASH+U盘

[复制链接]
2954|25
 楼主| yszong 发表于 2021-8-14 14:25 | 显示全部楼层 |阅读模式
目的是想实现数据存储,U盘拷出来,大致上是可以做出来了,不过发现还是有些小问题。
我的程序是直接用f_mkfs格式化了我的FLASH(W25Q64),也就是说插电脑不会再提示格式化。
数据使用FATFS的f_write存到一个文件"xxx.txt"中,,正常存数,U盘拷出来没问题,但是如果从PC机上复制一个文件进去U盘,重新拔插就会提示格式化了。。也就是说没办法正常当U盘使了。
dengdc 发表于 2021-8-14 14:27 | 显示全部楼层
如果把FATFS的程序注释掉,只使用U盘,那么可以正常存拿。
zwll 发表于 2021-8-14 15:02 | 显示全部楼层
网上查了一圈的资料,发现有人说WINDOWS下格式化U盘是FAT32的格式,而FATFS的格式化是格式化成FAT12格式,那有没有办法即可以使用FATFS存数据,又可以正常的当U盘用,从电脑复制东西进来呢?
 楼主| yszong 发表于 2021-8-14 15:04 | 显示全部楼层
顺便再问些其他的问题,FATFS的f_ioctl里面有个case GET_BLOCK_SIZE: 这个应该返回什么,W25Q64的BLOCK的大小是64KB,BLOCK的数量是128,但我在网上查了一圈正点原子那用同样的FLASH是8,差别很大
 楼主| yszong 发表于 2021-8-14 15:07 | 显示全部楼层
为什么我看很多FATFS教程里面,在diskio.c的dis_write里面,调用FLASH的写函数之前为什么没有擦除??
dengdc 发表于 2021-8-14 15:09 | 显示全部楼层
FLASH的写不是必须要把当前的sector给擦了先么。。
spark周 发表于 2021-8-14 15:10 | 显示全部楼层
看一下格式化代码,记得是根据容量自动选择FAT12、FAT16或FAT32的
huangchui 发表于 2021-8-14 15:12 | 显示全部楼层
单文件好像是最大2MB。
 楼主| yszong 发表于 2021-8-14 15:14 | 显示全部楼层
重点检查移植代码是否有bug
chenho 发表于 2021-8-14 15:16 | 显示全部楼层
存储器有8MB大小,肯定是FAT16了。
chenho 发表于 2021-8-14 15:18 | 显示全部楼层
以前用AT45DBxx,2MB都可以格式化为FAT16了
chenho 发表于 2021-8-14 15:20 | 显示全部楼层
fatfs是统称,fat12是其中一种,window会根据容量大小选择格式不一定都是fat32,你说的问题可能还是硬件读写的问题,你可以截一下看看错写哪个地方了.
huangchui 发表于 2021-8-14 15:28 | 显示全部楼层
W25写数据有个256字节对齐的限制,是不是这里没弄对
zhanghqi 发表于 2021-8-14 15:30 | 显示全部楼层
那个blocksize就是一个扇区的字节数,因为之后的访问都是以扇区为单位,修改成128会引起兼容的问题,没做过相关的实验.
 楼主| yszong 发表于 2021-8-14 15:32 | 显示全部楼层
额,原来我拿错料了,拿了W25Q80,难怪写超1MB就提示格式化
zwll 发表于 2021-8-14 18:41 | 显示全部楼层
那是错误处理那里没弄好
juventus9554 发表于 2021-8-14 18:45 | 显示全部楼层
没有研究过这个问题
wuhany 发表于 2021-8-14 18:47 | 显示全部楼层
你好,请教一个问题,我这总是提示格式化失败可能是什么原因呢
lizye 发表于 2021-8-14 18:49 | 显示全部楼层

LCD共享的问题
P3.4~P3.7用作AN4~AN7时需要满足2个条件:
    1. CHx = 1;
    2. SCHx = 1;
    CHx = 1,SCHx = 0时,P3.4~P3.7会作为LCD口 。
    解决方法:把没有用到的通道设置为输入无上拉,ADCH[7:4]对应清0即可。
    (就是说,开始转换的时候,才将该IO口设置成ADC口)
     正确切换通道举例如下:
      P3SS = 0X0F;
      P3CR = 0X00;
      P4CR = 0X00;

; AN4
       ADCON = 0X08;
       ADCH = 0X10;

;AN5
       ADCON = 0X0A;
       ADCH = 0X20;
 楼主| yszong 发表于 2021-8-14 18:51 | 显示全部楼层

好的,我明天去单位试一下,多谢各位大侠了哈        
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部