F407+ESP8266+MQTT+AliIoT(六)——cJSON移植

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);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章