今天我们学习合宙低功耗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文章
5608浏览量
123277 -
低功耗
+关注
关注
12文章
3002浏览量
106267 -
模组
+关注
关注
6文章
1721浏览量
32023
发布评论请先 登录
相关推荐
热点推荐
实战Air780EPM:构建4G共享网关,服务WiFi与有线设备!
通过Air780EPM开发板,我们可以轻松实现4G网络作为数据出口,为周边的WiFi设备和以太网设备提供互联网共享,适用于移动办公、远程部署等场景。 一、多网融合概述 Air780
Air8101多网融合战略升级:Air780EPM模块助力4G联网落地
应用迈向新高度。 本文将分享Air8101核心板通过外挂Air780EPM整机开发板,实现4G联网的功能示例。 一、硬件准备工作 1
COD监测革新!Air780EPM一站式替代STM32+4G模组的物联网方案 ~
通过将4G通信、COD数据处理与低功耗控制集成于Air780EPM芯片,本方案彻底颠覆STM32+外置模组的松散架构。实测显示,设备启动时间从STM32方案的12s缩短至3s。 水质C
开发宝典:4路低功耗ADC接口,Air780EPM二次开发必看!
本文将深入探讨如何通过硬件参数配置、软件算法优化及系统级功耗管理,实现ADC接口性能与能耗的最佳平衡。从寄存器设置到驱动程序编写,从采样策略到噪声抑制,我们将全面揭秘Air780EPM低功耗ADC
快速开发实战——4路低功耗ADC接口,Air780EPM二次开发必看!
Air780EPM 模组,内置4MB大内存RAM,支持LCD、摄像头、Modbus、以太网、CAN;具备更强大的二次开发资源,更完善的外设能力,也更适于工业场景。 最新
新手必看!4G模组Air780EPM——GPIO的设计说明
Air780EPM的GPIO设计需兼顾硬件可靠性与软件灵活性,开发者应基于具体应用场景权衡复用功能优先级,并遵循电源管理规范以延长设备生命周期。通过模块化配置与精细化调试,可最大化释放模组性能潜力
干货预警!4G模组:Air780EPM其他硬件接口
Air780EPM 4G模组不仅凭借高速稳定的数据传输能力在智能终端、工业自动化、车载设备等领域大放异彩,更以其“全栈式”硬件接口设计,为开发者提供了近乎无限的扩展可能。 一、ADC
手把手教你!4G模组Air780EPM——GPIO的设计说明
4G模组Air780EPM作为广和通推出的高性能Cat.1bis无线通信模块,凭借其低功耗、高集成度及丰富的外设接口,在工业物联网、智能终端、车载设备等领域展现出卓越的适配性。 一、概
4G模组Air780EPM的开机启动及外围电路设计!
本文介绍了4G模组——Air780EPM 模块开机的完整硬件设计指南,涵盖供电要求、管脚配置、电路示例及常见问题排查方法,希望能够帮助大家避免设计错误,确保模块稳定启动!常见开机电路。
初学者必看!4G模组Air780EPM的开机启动及外围电路设计
本文介绍了4G模组——Air780EPM 模块开机的完整硬件设计指南,涵盖供电要求、管脚配置、电路示例及常见问题排查方法,希望能够帮助大家避免设计错误,确保模块稳定启动!常见开机电路。

低功耗4G模组:Air780EP之fskv开发示例
评论