资源简介
STM32+ESP8266+MQTT接入OneNet,并使用手机APP控制。例程源代码
代码片段和文件信息
/*
Copyright (c) 2009 Dave Gamble
Permission is hereby granted free of charge to any person obtaining a copy
of this software and associated documentation files (the “Software“) to deal
in the Software without restriction including without limitation the rights
to use copy modify merge publish distribute sublicense and/or sell
copies of the Software and to permit persons to whom the Software is
furnished to do so subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS“ WITHOUT WARRANTY OF ANY KIND EXPRESS OR
IMPLIED INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM DAMAGES OR OTHER
LIABILITY WHETHER IN AN ACTION OF CONTRACT TORT OR OTHERWISE ARISING FROM
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/* cJSON */
/* JSON parser in C. */
#include
#include
#include
#include
#include
#include
#include
#include “cJSON.h“
static const char *ep;
const char *cJSON_GetErrorPtr(void)
{
return ep;
}
static int cJSON_strcasecmp(const char *s1 const char *s2)
{
if (!s1) return (s1 == s2) ? 0 : 1;
if (!s2) return 1;
for(; tolower(*s1) == tolower(*s2); ++s1 ++s2) if(*s1 == 0) return 0;
return tolower(*(const unsigned char *)s1) - tolower(*(const unsigned char *)s2);
}
static void *(*cJSON_malloc)(size_t sz) = malloc;
static void (*cJSON_free)(void *ptr) = free;
static char* cJSON_strdup(const char* str)
{
size_t len;
char* copy;
len = strlen(str) + 1;
copy = (char*)cJSON_malloc(len);
if (!copy) return 0;
memcpy(copy str len);
return copy;
}
void cJSON_InitHooks(cJSON_Hooks* hooks)
{
if (!hooks) /* Reset hooks */
{
cJSON_malloc = malloc;
cJSON_free = free;
return;
}
cJSON_malloc = (hooks->malloc_fn) ? hooks->malloc_fn : malloc;
cJSON_free = (hooks->free_fn) ? hooks->free_fn : free;
}
/* Internal constructor. */
static cJSON *cJSON_New_Item(void)
{
cJSON* node = (cJSON*)cJSON_malloc(sizeof(cJSON));
if (node) memset(node 0 sizeof(cJSON));
return node;
}
/* Delete a cJSON structure. */
void cJSON_Delete(cJSON *c)
{
cJSON *next;
while (c)
{
next = c->next;
if (!(c->type & cJSON_IsReference) && c->child) cJSON_Delete(c->child);
if (!(c->type & cJSON_IsReference) && c->valuestring) cJSON_free(c->valuestring);
if (!(c->type & cJSON_StringIsConst) && c->string) cJSON_free(c->string);
cJSON_free(c);
c = next;
}
}
/* Parse the input text to generate a number and populate the result into item. */
static const char *parse_number(cJSON *it
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-06-30 14:29 上传数据onenet\
目录 0 2016-07-01 15:43 上传数据onenet\printf(interrupt)\
目录 0 2016-06-30 14:16 上传数据onenet\printf(interrupt)\Doc\
文件 0 2013-03-18 19:46 上传数据onenet\printf(interrupt)\Doc\readme.txt
目录 0 2016-07-02 13:06 上传数据onenet\printf(interrupt)\EDP\
文件 36825 2016-06-01 18:46 上传数据onenet\printf(interrupt)\EDP\cJSON.c
文件 7526 2016-06-01 18:46 上传数据onenet\printf(interrupt)\EDP\cJSON.h
文件 553 2016-06-01 18:46 上传数据onenet\printf(interrupt)\EDP\Common.h
文件 31030 2016-07-02 13:06 上传数据onenet\printf(interrupt)\EDP\EdpKit.c
文件 14612 2016-06-01 18:46 上传数据onenet\printf(interrupt)\EDP\EdpKit.c.pre
文件 26979 2016-06-01 18:46 上传数据onenet\printf(interrupt)\EDP\edpkit.h
文件 399 2011-05-09 18:17 上传数据onenet\printf(interrupt)\keilkill.bat
目录 0 2016-06-30 14:16 上传数据onenet\printf(interrupt)\Libraries\
目录 0 2016-06-30 14:16 上传数据onenet\printf(interrupt)\Libraries\CMSIS\
文件 17273 2010-06-07 10:25 上传数据onenet\printf(interrupt)\Libraries\CMSIS\core_cm3.c
文件 85714 2011-02-09 14:59 上传数据onenet\printf(interrupt)\Libraries\CMSIS\core_cm3.h
目录 0 2016-06-30 14:16 上传数据onenet\printf(interrupt)\Libraries\CMSIS\startup\
文件 15766 2011-03-10 10:52 上传数据onenet\printf(interrupt)\Libraries\CMSIS\startup\startup_stm32f10x_cl.s
文件 15503 2011-03-10 10:52 上传数据onenet\printf(interrupt)\Libraries\CMSIS\startup\startup_stm32f10x_hd.s
文件 15692 2011-03-10 10:52 上传数据onenet\printf(interrupt)\Libraries\CMSIS\startup\startup_stm32f10x_hd_vl.s
文件 12376 2011-03-10 10:52 上传数据onenet\printf(interrupt)\Libraries\CMSIS\startup\startup_stm32f10x_ld.s
文件 13656 2011-03-10 10:52 上传数据onenet\printf(interrupt)\Libraries\CMSIS\startup\startup_stm32f10x_ld_vl.s
文件 12765 2011-03-10 10:52 上传数据onenet\printf(interrupt)\Libraries\CMSIS\startup\startup_stm32f10x_md.s
文件 14073 2011-03-10 10:51 上传数据onenet\printf(interrupt)\Libraries\CMSIS\startup\startup_stm32f10x_md_vl.s
文件 15955 2011-03-10 10:51 上传数据onenet\printf(interrupt)\Libraries\CMSIS\startup\startup_stm32f10x_xl.s
文件 633941 2011-03-10 10:51 上传数据onenet\printf(interrupt)\Libraries\CMSIS\stm32f10x.h
文件 36557 2011-03-10 10:51 上传数据onenet\printf(interrupt)\Libraries\CMSIS\system_stm32f10x.c
文件 2085 2011-03-10 10:51 上传数据onenet\printf(interrupt)\Libraries\CMSIS\system_stm32f10x.h
目录 0 2016-06-30 14:16 上传数据onenet\printf(interrupt)\Libraries\FWlib\
目录 0 2016-06-30 14:16 上传数据onenet\printf(interrupt)\Libraries\FWlib\inc\
文件 8982 2011-03-10 10:47 上传数据onenet\printf(interrupt)\Libraries\FWlib\inc\misc.h
............此处省略182个文件信息
相关资源
- 基于STM32F4x9的LCD显示
- VS1053B编解码器的VDR分布式声音采集卡
- stm32的DAC播放音乐文件
- STM32+TMC5160代码电路图.rar
- 在各城市的窄带物联网中传感器起到
- 物联网家居系统中基于单片机的多路
- 物联网中无线传感器节点和RFID数据融
- 有关面向工业物联网的无线传感器网
- 物联网无线传感器网络的7大特点
- 基于STM32的深海钻机甲板控制系统
- stm32f103.SchDoc
- STM32F103 USART+DMA
- DMA+stm32 407.zip
- 4_USART串口通信(空闲中断+DMA.zip
- stm32f105-usart-DMA收发demo
- STM32F042F6P6 Uart12DMA;发送中断接收
- 基于STM32的嵌入式双目图像采集系统设
- 基于STM32F103C8单片机的晶联讯电子JL
- 基于STM32的温湿度检测系统实现
- stm32F4+w5300
- 14284969_《STM32单片机应用与全案例实践
-
ST-li
nk-V2的SWD仿真使用方法.docx - 安富莱STM32开发板资料
- EMCP物联网云平台操作手册
- STM32F103实现OV7670摄像头显示
- STM32F207学习板例程
- STM32F103VCT6TR - High-density performance lin
- STM32 SRAM启动的 KeiL 配置
- STM32的IAP-Bootloader程序
- STM32例程之Bootloader
评论
共有 条评论