1、容量偏小
2、写数据太慢,因为存储单元只能1改成0,为了保证写入成功,需要使用缓冲进行数据处理后写入,
关键写入前必须擦除扇区,一个扇区4K大小需要擦除50ms,极限每秒写入80K的数据,
实际测试每秒写入50K,读出150K左右,太慢了。
3、扇区大小是4K和正常512的磁盘扇区不和,难以制作成启动盘
tsxdz 发表于 2023-3-15 15:03
我的意思是一块电路板上有STC单片机和W25Q, 先插到电脑上当成U盘复制数据到W25Q上,然后取下来, 再单片 ...
写数据用USBMSC,读数据得用FAT文件系统(如果是大于8MB了话FAT32,小于8MB了话FAT12)。
关键看你想干什么了。我记得坛子里有大佬搞过USBMSC和ZNFAT共存协同工作范例,在操作系统板块里好像。但问题就来了:有点太大了。
你这两套东西放一块几十K的ROM就出去了,那你的实际应用部分估计还没这两套东西大。毕竟片内FLASH就这么多
当然你要是单纯单纯只想拷数据了话,MSC和FAT可以分开弄。
把你的MSC程序烧进去,把你要考拷的文件拖进优盘根目录,数据就进你的SPIFLASH里了
拷完数据,想用它了话把你的程序里移植个文件系统(ZNFAT,FATFS之类的,网上教程一堆,都是现成的很好弄),通过文件系统来读取你拷进去的数据
如果实在太懒,连文件系统也不想整的话,也有好招。
在电脑上装一个能物理写盘的软件(Hxd HEXeditor,或者WINHEX之类的)
把MSC模拟优盘插入之后,别格式化,直接把数据复制到你想要的扇区地址就好了。读取时候直接从偏移量往后读就OK,这个跟STCISP里的FLASH编辑器效果一样的,只不过走的是USBMSC而不是串口或者CDC罢了 tsxdz 发表于 2023-3-14 09:26
问题来了.光能能做成U盘还不行呢. 单片机还要读取数据, 要知道数据是如何保存在W25Q中的, 做成U盘目的是 ...
拖文件进去这种是走了文件系统,比如FAT32,就理解成是按一定规范存储的就好了,这些个规范网上介绍的很详细,也有很多库按着这些个规范帮你读取文件。比如FATFS
当然,下个软件直接十六进制物理写磁盘,把你想写入的数据直接写到指定扇区,怎么写也就怎么读,就能绕过这个文件系统。跟STCISP里的FLASH编辑器一样直接。 我用的AI8051U,运行这个USB Demo,应该使用STC32G的例子吧? 孙晓玉 发表于 2025-5-15 16:22
我用的AI8051U,运行这个USB Demo,应该使用STC32G的例子吧?
有专用例程
https://www.stcaimcu.com/data/download/DemoCode/AI8051U-DEMO-CODE-V1.2.zip
页:
1
[2]