F407+ESP8266+MQTT+AliIoT(六)——cJSON移植
简介
在F407接收到阿里云下发的Publish Message之后,需要解码,解码要用到cJSON.c和cJSON.h文件,这两个文件可以在github上下载。在这里只给出了一个示例,具体怎么用看自己的。
如果不行可以修改文件startup_stm32f407xx.s,增加空间
Stack_Size EQU 0x00000400
Heap_Size EQU 0x00000200
修改为
Stack_Size EQU 0x00001000
Heap_Size EQU 0x00001000
相关程序源码
CSJON数据解包示例代码
const char *line = "{\"method\":\"thing.service.property.set\",\"id\":\"1047683414\", \
\"params\":{\"temperature\":23,\"humidity\":23},\"version\":\"1.0.0\"}";
cJSON *json;
printf(line);
json = cJSON_Parse(line);
if(json ==NULL)
printf("json fmt error:%s\n.", cJSON_GetErrorPtr());
else {
cJSON *obj_id = cJSON_GetObjectItem(json, "id");
cJSON *obj_params = cJSON_GetObjectItem(json, "params");
cJSON *obj_temp = cJSON_GetObjectItem(obj_params, "temperature");
cJSON *obj_humi = cJSON_GetObjectItem(obj_params, "humidity");
printf("\r\n");
printf("temperature: %.1f\r\n", obj_temp->valuedouble);
printf("humidity: %.1f\r\n", obj_humi->valuedouble);
cJSON_Delete(json);
}