你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 FOTA 例程之 cJSON使用

[复制链接]
STMCU 发布时间:2018-9-29 13:48
前言

在 STM32 OTA例程中,设备端(stm32F769探索版)与云端交换数据使用的是 json格式。在本篇文章中,将对 json格式以 及 Cjson的使用及注意事项进行说明。

JSON 格式

JSON(JavaScript Object Notation)是一个轻量级的数据交换格式。既便于开发者读写,也便于机器分析和构建。它独立于 开发语言,是一种文本格式,很适用描述在各个系统间交换的数据。

JSON格式的数据看起来就像下面这个样子:
{
    “Room1”: {  
       “LED”: “on”,  
     “Temperature”: “36”
    }
}
这个 JSON数据描述的是 Room1的 LED灯状态以及温度值。它由一组“名称(key)”以及对应的“ 值(value)”组成。 “名称”和“ 值”之间由“ :”分开。各组“名称:值”对之间由“,”符号进行分割。


cJSON 的使用

针对不同的开发语言,网上有很多 JSON的实现, demo里使用的是 Cjson,版本 1.6。它的源码可以在 http://github.com/DaveGamble/cJSON上下载。

将 Cjson 添加到工程
Cjson只有一个 C文件 Cjson.C和一个头文件 Cjson.h。所以只需要将这两个文件拷贝到工程文件夹中,并将 Cjson.C添加到 工程中就可以了。

数据结构
Cjson中使用下面的数据结构来表示 JSON数据。

QQ截图20180929133424.png

*next和*prev 指针可以用来遍历“矩阵”或者“对象”类型的 JSON数据链表;这两种类型的 JSON数据还会有一个子数据 指针*child
type : 表示该 json数据的类型,比如数字,字符串、矩阵、对象等
*valuestring, valueint, valuedouble和*string指针分别指向该 json数据类型具体的值,视其类型而定。

使用 cjson 生成 json 数据
下面我们看看如何使用 cjson来生成下面的数据:
{   
“reported”: {        
“LED”: “on”,      
“status” : “normal”
    }
}
见下面的代码:
QQ截图20180929134146.png
QQ截图20180929134159.png    

..

了解更多,请下载后阅读

下载地址1>>                                 下载地址2>>                                   更多实战经验>>

收藏 1 评论2 发布时间:2018-9-29 13:48

举报

2个回答
50031185 回答时间:2018-10-1 07:44:53
这个在远程数据交互过程中可以看到有便捷性,在独立的单片机系统中有什么优势吗?
wweeww 回答时间:2018-10-1 22:13:43
请问这个OTA demo 在哪 ,就是源程序 ,我找半天没找着

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版