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字符串到文件系统。是不是非常简单?