gpt4 book ai didi

arduino - 使用 Arduino 在 SD 上读取/写入二进制数据

转载 作者:行者123 更新时间:2023-12-03 14:30:19 25 4
gpt4 key购买 nike

我正在使用 Arduino 进行一个项目,我希望能够持久保存一些数据。我已经在使用带有 MicroSD 读卡器的以太网屏蔽。

我保存的数据将非常小。目前,我一次只保存 3 个字节。我真正想要的是一种打开 SD 卡以从字节 x 开始写入的方法然后写y字节的数据。当我想读回来时,我只是读了y从字节 x 开始的字节.

但是,我看到的所有代码都涉及使用文件系统,这似乎是不必要的开销。我不需要在任何其他系统上读取这些数据,存储空间不是问题,卡上没有其他数据需要担心。有没有办法直接将二进制数据写入 SD 卡?

最佳答案

可以将原始二进制数据写入 SD 卡。大多数人使用 SD 卡支持的 4 针 SPI 接口(interface)来执行此操作。不幸的是,数据不是字节寻址的,而是 block 寻址的( block 大小通常为 512 字节)。

这意味着如果您想在字节 516 处写入 4 个字节,则必须读取 block 0x00000001(第二个 block ),然后计算偏移量,写入数据,然后将整个 block 写回。 (我不能说这个限制适用于使用更多引脚的SD接口(interface),我没有经验)

这种复杂性是为什么很多人选择使用包含“不需要的开销”的库的原因。

话虽如此,我过去不得不这样做,因为我需要一种在遇到电源故障时记录数据的方法。我发现以下资源非常有用:

http://elm-chan.org/docs/mmc/mmc_e.html

您可能会发现更容易将较小的写入写入内存缓冲区,并在您拥有足够大的数据量时将它们转储到 SD 卡以使其值得。

如果你环顾四周,你会发现很多处理 SD SPI 接口(interface)的开源代码可以直接使用,或者作为实现自己系统的引用。

关于arduino - 使用 Arduino 在 SD 上读取/写入二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25837386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com