乐鑫技术交流
直播中

刘伟

7年用户 1574经验值
私信 关注
[问答]

在MQTT中的TCP样例中,如何添加cjson解析代码并将获取到的数据输出出去?


  • case MQTT_EVENT_DATA:
  •         ESP_LOGI(TAG, "MQTT_EVENT_DATA");
  •         printf("TOPIC=%.*s

    "
    , event->topic_len, event->topic);
  •         printf("DATA=%.*s

    "
    , event->data_len, event->data);
  •         // 创建json数据解析对象
  •         pJsonRoot = cJSON_Parse(event->data);
  •         //如果是否json格式数据
  •         if (pJsonRoot !=NULL)
  •         {
  •             printf("Data NULL!

    "
    );
  •         }
  •         // 解析数据
  •         // char bssid[23] = {0};
  •         pJsonRoot = cJSON_GetObjectitem(pJsonRoot, "msg");    // 解析msg字段字符串内容
  •         ESP_LOGI(TAG, "Data=%s", cJSON_Print(pJsonRoot));
  •         // 释放内存
  •         // cJSON_Delete(pJsonRoot);
  •         break;

添加的代码如上所示,但是烧录后每次到输出的部分就到倒是重启,报错的警告为Guru Meditation Error: Core  0 panic'ed (LoadStoreError). Exception was unhandled.

如果把输出的部分删除,就不会出现重启的情况,将输出部分改为printf也会报错

请问一下,如果我需要在这里添加cjson解析代码并将获取到的数据输出出去,应该如何修改代码?
                                
                        

这个是通过命令查看到的位置,就是代码中的第十五行。

更多回帖

发帖
×
20
完善资料,
赚取积分