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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值