|
楼主 |
发表于 2023-12-11 12:57:15
|
显示全部楼层
zn_FAT 与 电脑 交换文件演示
本文采用STC32G实验箱测试, 将实验箱上的W25X40 替换为 W25Q128
1.把用zn_FAT固件烧入MCU, 用zn_FAT格式化FLASH,运行结果如下:
2.把MSC固件烧入MUC, 此时可以看到一个16M的U盘, 在U盘内创建一个文件名为"abc.txt"的文件, 输入内容为:"PC端输入文件内容"
3.再次把用zn_FAT固件烧入MCU, 运行结果如下:
注意事项, zn_FAT为了节省RAM使用, 扇区固定为512, 影响到以下几个方面:
1. W25QXX的扇区是4096, 所以, 如果你的W25QXX驱动代码是不支持512访问的, 得调整底层驱动代码
2.因为W25QXX的扇区是4096, 有时候为了节省RAM,不会全部使用完4096个字节, 而是只使用一部分, 比如只使用前256字节, 这种代码用于文件系统是不行的.
3.MCS和zn_FAT都是由底层代码直接给出扇区大小, 盘总大小, 这些参数. 两个例程参数设置要一至. 即扇区大小都设置为512. 16M的FLASH, MSC做如下设置:
dwMemorySize = 1024ul*1024ul*16;
wSectorSize = 512u;
dwSectorNumber = dwMemorySize / wSectorSize;
扇区调整过以后, 底层读写也需要做相应的调整
4. zn_FAT最小支持的盘SIZE为8M, 也就是说, 小于8M的FLASH格式化不会成功.
5. 用PC格式化的盘, zn_FAT不一定能识别, 原因是 zn_FAT 支持有限的格式, 所以在使用时, 得用 zn_FAT格式化, zn_FAT格式化的盘, PC能够识别
以下是两个例程代码:
MSC.rar
(338.61 KB, 下载次数: 34)
znFAT.rar
(517.89 KB, 下载次数: 34)
其它杂谈: 如果把 MSC 和 zn_FAT 做到一个固件上, 就可以实现 MUC和PC无驱动通信, 在电脑上改变文件的内容, MCU读到到文件内容变化, 做相应的处理, 实际上就是通过文件来传递数据.
举两个简单的应用:
1.温度传感器每小时把采样到的温度值写入文件, PC端直接就可以看到, 因为此时MCU固件内同时有MSC和zn_FAT, 电脑省去做桌面驱动.
2.另一个简单的应用是, 我们在电脑端往U盘内写入一个BIN文件, MUC就可以跟据这个文件更新自己的固件或EEPROM.
实现电脑和MCU之间共享数据, PC端不需要做桌面驱动, 有无限可能
|
|