今天我们学习合宙低功耗4G模组Air780EP的fskv开发示例。
一、简介
- 兼容fdb的函数
- 使用fdb的flash空间,启用时也会替代fdb库
- 功能上与EEPROM是类似的
fskv与fdb的实现机制导致的差异
| 功能 | fskv | fdb |
|---|---|---|
| value长度 | 4096 | 255 |
| key长度 | 63 | 64 |
| 空间利用率(对比) | 较低 | 较高 |
| 读取速度 | 恒定 | 脏数据影响速度,非恒定 |
| 写入数据 | 恒定 | 脏数据影响速度,非恒定 |
| 均衡擦除 | 自动 | 自动 |
二、环境准备
2.1 Air780EP开发板一套
三、程序介绍
3.1 API介绍
详细API介绍见:fskv-API
3.2 初始化kv数据库
fskv.init()
参数
无
返回值
| 返回值类型 | 解释 |
|---|---|
| boolean | 成功返回true,否则返回false |
3.3 设置一对kv数据
fskv.set(key, value)
参数
| 传入值类型 | 解释 |
|---|---|
| string | key的名称,必填,不能空字符串 |
| string | 用户数据,必填,不能nil, 支持字符串/数值/table/布尔值, 数据长度最大4095字节 |
返回值
| 返回值类型 | 解释 |
|---|---|
| boolean | 成功返回true,否则返回false |
3.4 设置table内的键值对数据
fskv.sett(key, skey, value)
参数
| 传入值类型 | 解释 |
|---|---|
| string | key的名称,必填,不能空字符串 |
| string | table的key名称, 必填, 不能是空字符串 |
| string | 用户数据,必填,支持字符串/数值/table/布尔值, 数据长度最大4095字节 |
返回值
| 返回值类型 | 解释 |
|---|---|
| boolean | 成功返回true,否则返回false/nil |
3.5 根据key获取对应的数据
fskv.get(key, skey)
参数
| 传入值类型 | 解释 |
|---|---|
| string | key的名称,必填,不能空字符串 |
| string | 可选的次级key,仅当原始值为table时有效,相当于 fskv.get(key)[skey] |
返回值
| 返回值类型 | 解释 |
|---|---|
| any | 存在则返回数据,否则返回nil |
3.6 根据key删除数据
fskv.del(key)
参数
| 传入值类型 | 解释 |
|---|---|
| string | key的名称,必填,不能空字符串 |
返回值
| 返回值类型 | 解释 |
|---|---|
| bool | 成功返回true,否则返回false |
3.7 清空整个kv数据库
fskv.clear()
参数
无
返回值
| 返回值类型 | 解释 |
|---|---|
| bool | 成功返回true,否则返回false |
3.8 kv数据库迭代器
fskv.iter()
参数
无
返回值
| 返回值类型 | 解释 |
|---|---|
| userdata | 成功返回迭代器指针,否则返回nil |
3.9 kv迭代器获取下一个key
fskv.next(iter)
参数
| 传入值类型 | 解释 |
|---|---|
| userdata | fskv.iter()返回的指针 |
返回值
| 返回值类型 | 解释 |
|---|---|
| string | 成功返回字符串key值, 否则返回nil |
3.10 获取kv数据库状态
fskv.status()
参数
无
返回值
| 返回值类型 | 解释 |
|---|---|
| int | 已使用的空间,单位字节 |
| int | 总可用空间, 单位字节 |
| int | 总kv键值对数量, 单位个 |
四、实现流程
4.1 使用luatools工具下载固件和脚本到开发板中
4.2 通过luatools打印查看效果:

由上图可以看出,fskv支持存放布尔,数值,小数,字符串,等均可。还可以存放table类型的值。但不能存放nil, function, userdata, task类型的值。
五、常见问题
NVM坏了的话会不会影响fskv存储?
不同的flash互不影响。
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
4G
+关注
关注
15文章
5631浏览量
124799 -
低功耗
+关注
关注
12文章
4101浏览量
106896 -
模组
+关注
关注
6文章
1811浏览量
32387
发布评论请先 登录
相关推荐
热点推荐
蓝牙模组Air5101s规格介绍
Air5101S 是一款超小型低功耗蓝牙透传模组,尺寸为 6×15.3×2.25mm,基于 BLE 5.2 技术打造,采用工业级设计,搭配简洁 AT 指令集。可与现有 4G
一个G-Sensor,搞定GNSS定位静态漂移+智能低功耗控制
Air780EGP、Air780EGG系列通信定位模组,秉承LuatOS二次开发、高集成与低功耗核心优势的同时,针对定位终端的真实痛点,做出
TVP5150AM1-EP:超低功耗视频解码的卓越之选
TVP5150AM1-EP:超低功耗视频解码的卓越之选 在当今的视频处理领域,对于高效、低功耗的视频解码器需求日益增长。TI推出的TVP5150AM1-
以Air780EPM开发板为例:FFT应用示例核心要点全解析
以Air780EPM开发板作为实践载体,本文将对FFT应用示例的核心要点展开全面解析。从开发板的硬件特性适配、FFT算法的实现流程,到示例代
实战Air780EPM:构建4G共享网关,服务WiFi与有线设备!
通过Air780EPM开发板,我们可以轻松实现4G网络作为数据出口,为周边的WiFi设备和以太网设备提供互联网共享,适用于移动办公、远程部署等场景。 一、多网融合概述 Air780
Air780EGH开源代码来袭!定位功能快速入门指南
欢迎探索Air780EGH开源生态!最新版本解锁定位功能源代码,无论你是新手还是资深开发者,都能通过简洁的示例代码快速上手。从初始化配置到实时定位数据获取,一站式解决定位开发痛点。 下
揭秘Air780EGH定位功能:源码开放助力极速开发 !
Air780EGH定位模块源代码全面开放!无需复杂前置知识,只需跟随本文教程,即可从零开始搭建定位系统。代码注释清晰,示例完整,助你短时间内掌握定位功能核心用法。 下文将以Air780EGH核心板为
Air8101多网融合战略升级:Air780EPM模块助力4G联网落地
应用迈向新高度。 本文将分享Air8101核心板通过外挂Air780EPM整机开发板,实现4G联网的功能示例。 一、硬件准备工作 1
Air780EPM应用开发:解锁GPIO与LED的N种交互模式
、GPIO直接驱动LED 1.1 适用场景 低功耗场景:LED电流 ≤ 5mA(普通GPIO的驱动能力限制)。 休眠需求:若需LED在休眠时保持亮灭状态,需使用AGPIO。 注意:Air780
解锁Air780EPM:N种GPIO操控LED的实战技巧!
——通过硬件层精确控制电路参数,结合LuatOS高效API实现快速原型开发,适用于智能照明、状态指示等物联网场景。 一、GPIO直接驱动LED 1.1 适用场景 低功耗场景:LED电流 ≤ 5mA
COD监测革新!Air780EPM一站式替代STM32+4G模组的物联网方案 ~
通过将4G通信、COD数据处理与低功耗控制集成于Air780EPM芯片,本方案彻底颠覆STM32+外置模组的松散架构。实测显示,设备启动时间从STM32方案的12s缩短至3s。 水质C
低功耗4G模组:Air780EP之fskv开发示例
评论