-1

我正在研究微控制器,我正在尝试将一些传感器的一些数据写入 SD 卡上的 .txt 文件,然后将 sd 卡放入读卡器并读取 PC 上的数据。

有谁知道如何从头开始为 FAT32 文件系统编写 .txt 文件?我没有任何要调用的预定义代码/方法/函数,我需要从无到有创建代码。

这不是特定编程语言的问题,这就是为什么我标记了多个。稍后我可以将代码从 C 或 Java 转换为我选择的编程语言。但我似乎无法在任何类型的语言中找到如此低级的方法/功能:)

有任何想法吗?

4

2 回答 2

2

FatFs非常好,并且高度便携。它支持 FAT12、FAT16 和 FAT32、长文件名、查找、读取和写入(大多数这些东西都可以打开和关闭以改变内存占用)。
如果你的内存真的很紧,还有 Petit FatFs,但默认情况下它没有写支持,添加它需要一些工作。

安装驱动器后,您只需打开一个文件即可创建它。例如:

FATFS fatFs;
FIL newFile;

// The drive number may differ 
if (f_mount(0, &fatFs) != FR_OK) {
  // Something went wrong
}

if (f_open(&newFile, "/test.txt", FA_WRITE | FA_OPEN_ALWAYS) != FR_OK) {
  // Something went wrong
}

如果您确实需要仅使用自己的代码创建文件,则必须遍历 FAT,寻找空白空间,然后创建新的 LFN 条目(存储文件名的位置)和 DIRENT(指定磁盘上的集群)将保存文件数据)。
除非这是某种家庭作业/实验室练习,否则我看不出这样做的任何理由。在任何情况下,您都应该先阅读一些有关 FAT 结构的内容,并在开始后返回一些更具体的问题。

于 2013-04-07T08:42:49.220 回答
1

在JAVA中你可以这样做

Writer output = null;
String text = "This is test message";
File file = new File("write.txt"); 
output = new BufferedWriter(new FileWriter(file));
output.write(text);
output.close();  
System.out.println("Your file has been written");
于 2013-04-07T08:02:27.190 回答