esp32c3 nvs存取大数组结构体方法

                                
typedef struct
{
    uint8_t key;
    uint8_t FN;
    uint32_t time;
    uint32_t maintime;
    /* data */
} key_type;
esp_err_t err;
                                //存入
                                err=nvs_open("music_NAME", NVS_READWRITE, &music_handle);
                                if(err!=ESP_OK)
                                {
                                     printf("文件打开失败\n");
                                }
                                err=nvs_set_blob(music_handle, "music_NAME",music,  music_len*sizeof(music));
                                if(err!=ESP_OK)
                                {
                                        printf("数据存入失败\n");
                                        musiclen=music_len-1;
                                }else{
                                    musiclen=0;
                                }
                                nvs_commit(music_handle);
                                nvs_close(music_handle);

                               //读取
                               err=nvs_open("music_NAME", NVS_READWRITE, &music_handle);
                                if(err!=ESP_OK)
                                {
                                     printf("文件打开失败\n");
                                }
                                size_t read_len=0;
                                key_type music_read[music_len];
                               err= nvs_get_blob(music_handle, "music_NAME",NULL ,&read_len);
                                 if(err==ESP_OK)
                                {
                                     printf("LEN:%d\n",read_len);
                                }
                               err= nvs_get_blob(music_handle, "music_NAME",music_read ,&read_len);
                                if (err!=ESP_OK)
                                {
                                    printf("数据读取失败\n");
                                }
                                for(int ci=0;ci<(read_len/sizeof(music_read));ci++)
                                {
                                    printf("key:%02x,FN:%02x,maintime:%d,time:%d\n",music_read[ci].key,music_read[ci].FN,music_read[ci].maintime,music_read[ci].time);
                                }
                                
                                nvs_close(music_handle);

使用这2个函数

nvs_set_blob ()存入

nvs_get_blob()取出

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值