当前位置: 首页 > news >正文

RP2040使用存储系统

        我一直以为RP2040的系统是无法使用文件系统的,直到有一天,我无意中发现Arduino的芯片设置栏位中有一个奇怪的选项:

        我很好奇的让DeepSeek给我找了一下资料, 然后它告诉我,这是一个文件系统的预分配方案,我当时就惊讶了,我一直以为RP2040这种芯片是无法使用文件系统的。结果,突然被惊喜砸中,因为我一直想存储一些数据,因为一直以为RP2040无法使用文件系统,甚至想通过网络通讯将数据存在其他地方。于是,让DeepSeek给我深扒了一下如何使用这个文件系统。它告诉我需要用一个叫做LittleFS的库来操作,属于那种极简版的文件系统。这个库的用法大致如下:

    if( LittleFS.begin() ) {File file = LittleFS.open("/config.json", "r");if( file ){String json = file.readString();if( json.isEmpty() == false ){JsonDocument doc;DeserializationError error = deserializeJson( doc, json.c_str() );if( error ){Serial.printf( "deserializeJson() failed: %s\n", error.f_str() );}else {current = doc["current"];Serial.printf( "current: %f\n", current );}}            file.close();}}

        上面的代码演示了如何初始化文件系统,加载并读取一个文件的内容。LittleFS在使用前必须调用 begin() 函数。加载非常简单,open之后,读取内容就行了。这儿同时也用了 ArduinoJson,可以在RP2040使用JSON,当然受限于内存,不能用太复杂的JSON字符串,对付一些配置什么的,还是没问题。

    JsonDocument doc; // 根据数据大小调整内存doc["current"] = current;String json;size_t bytes = serializeJson( doc, json );if( bytes == 0 ){Serial.printf( "serializeJson() failed.\n" );}else{// 写入File file = LittleFS.open("/config.json", "w");if( file ) {file.print( json );file.close();Serial.printf( "Write config.json ok: %s\n", json.c_str() );}}

        上面的代码演示了如何存储JSON字符串到文件系统。是不是非常简单?

http://www.dtcms.com/a/272968.html

相关文章:

  • 2025年7月10日泛财经要闻精选
  • ACPU正式启动全球化布局,重构AI时代的中心化算力基础施设
  • 基于cornerstone3D的dicom影像浏览器 第三十二章 文件夹做pacs服务端,fake-pacs-server
  • 专题 数字(Number)基础
  • pytorch深度学习-Lenet-Minist
  • (LeetCode 每日一题) 3440. 重新安排会议得到最多空余时间 II (贪心)
  • RabbitMQ消息队列——三个核心特性
  • LeetCode 1652. 拆炸弹
  • AI时代的接口调试与文档生成:Apipost 与 Apifox 的表现对比
  • Leetcode刷题营第十九题:对链表进行插入排序
  • Python 网络爬虫中 robots 协议使用的常见问题及解决方法
  • 图解 BFS 路径搜索:LeetCode1971
  • 芯片I/O脚先于电源脚上电会导致Latch-up(闩锁效应)吗?
  • Logback日志框架配置实战指南
  • 5种使用USB数据线将文件从安卓设备传输到电脑的方法
  • 【JavaScript 函数、闭包与 this 绑定机制深度解析】
  • 【C语言】指针笔试题2
  • 模块三:现代C++工程实践(4篇)第二篇《性能调优:Profile驱动优化与汇编级分析》
  • FlashAttention 快速安装指南(避免长时间编译)
  • QT网络通信底层实现详解:UDP/TCP实战指南
  • Centos 7下使用C++使用Rdkafka库实现生产者消费者
  • 【LeetCode 热题 100】19. 删除链表的倒数第 N 个结点——双指针+哨兵
  • 学习 Flutter (一)
  • html的outline: none;
  • C++STL-deque
  • 1. COLA-DDD的实战
  • 【基础架构】——软件系统复杂度的来源(低成本、安全、规模)
  • 告别卡顿与慢响应!现代 Web 应用性能优化:从前端渲染到后端算法的全面提速指南
  • IDEA运行Spring项目报错:java: 警告: 源发行版 17 需要目标发行版 17,java: 无效的目标发行版: 17
  • Cargo.toml 配置详解