esp32 arduino 如何写入内部flash的问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 524|回复: 6

[未解决] esp32 arduino 如何写入内部flash的问题

[复制链接]
发表于 2022-7-1 16:39 | 显示全部楼层 |阅读模式
esp32内部都有4MB的flash,我想把几个数据放入falsh,并实现程序运行中的读取和改写。没找到相关的api。麻烦大佬指点下相关的读取和写入及初始化的api
发表于 2022-7-1 17:27 | 显示全部楼层
发表于 2022-7-1 17:56 | 显示全部楼层
搜 spifs fatfs
 楼主| 发表于 2022-7-1 19:49 | 显示全部楼层
ahua7336 发表于 2022-7-1 17:27
http://www.taichi-maker.com/homepage/reference-index/arduino-library-index/eeprom-library/这个了解一 ...

这是外部存储的吧
发表于 2022-7-2 08:09 | 显示全部楼层
存在ESP32自带的flash里面
发表于 2022-7-6 16:00 | 显示全部楼层
esp32 可以用nvs


#include <Preferences.h> //nvs库

Preferences prefs;//声明对象名prefs
prefs.begin("test",false);//打开命名空间test false读写权限 true只读 默认false

prefs.end();

prefs.putString("string","22333");//存   名/值
prefs.getString("string","22333");//读   名/默认值
prefs.putInt("int",1234567890);
prefs.getInt("int",1234567890);
prefs.putChar("char",127);
prefs.getChar("char",127);
uint8_t buf[5]={1,2,3,4,5};
prefs.putBytes("byte", buf,5);
prefs.getBytes("byte", buf,5);


数据操作相关的API函数 对象名取为prefs

bool begin(const char * name, bool readOnly=false, const char* partition_label=NULL);:第一个参数是必填的,命名空间,第二个参数
prefs.begin("test",false);

clear():清除打开的首选项中的所有键。
prefs.clear();

freeEntries():获取剩余可用空间.
prefs.freeEntries();

remove():删除单独一个键值对象。与clear()不同,
prefs.remove("aaa");//清除aaa

end():关闭命名空间(namespace)
prefs.end();



存放不同类型数据的API函数 一个键名 一个键值
Char putChar(const char* key, int8_t value)
Unsigned Char putUChar(const char* key, int8_t value)
Short putShort(const char* key, int16_t value)
Unsigned Short putUShort(const char* key, uint16_t value)
Int putInt(const char* key, int32_t value)
Unsigned Int putUInt(const char* key, uint32_t value)
Long putLong(const char* key, int32_t value)
Unsigned Long putULong(const char* key, uint32_t value)
Long64 putLong64(const char* key, int64_t value)
Unsigned Long64 putULong64(const char* key, uint64_t value)
Float putFloat(const char* key, const float_t value)
Double putDouble(const char* key, const double_t value)
Bool putBool(const char* key, const bool value)
String putString(const char* key, const String value)
Bytes putBytes(const char* key, const void* value, size_t len)

读取不同类型数据的API函数 一个键名 一个默认值(取不到时)
Char getChar(const char* key, const int8_t defaultValue)
Unsigned Char getUChar(const char* key, const uint8_t defaultValue)
Short getShort(const char* key, const int16_t defaultValue
Unsigned Short getUShort(const char* key, const uint16_t defaultValue)
Int getInt(const char* key, const int32_t defaultValue)
Unsigned Int getUInt(const char* key, const uint32_t defaultValue)
Long getLong(const char* key, const int32_t defaultValue)
Unsigned Long getULong(const char* key, const uint32_t defaultValue)
Long64 getLong64(const char* key, const int64_t defaultValue)
Unsigned Long64 gettULong64(const char* key, const uint64_t defaultValue)
Float getFloat(const char* key, const float_t defaultValue)
Double getDouble(const char* key, const double_t defaultValue)
Bool getBool(const char* key, const bool defaultValue)
String getString(const char* key, const String defaultValue)
String getString(const char* key, char* value, const size_t maxLen)
Bytes getBytes(const char* key, void * buf, size_t maxLen)

发表于 2022-7-6 16:31 | 显示全部楼层

spifs fatfs是用来存文件的 他要存参可以用nvs
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-29 23:35 , Processed in 0.081547 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表