[已解决]在MQTT中的TCP样例中,在接受中断里添加cjson解析的部分

超级小星星123
Posts: 11
Joined: Fri Oct 21, 2022 9:36 am

[已解决]在MQTT中的TCP样例中,在接受中断里添加cjson解析的部分

Postby 超级小星星123 » Thu Dec 08, 2022 6:12 am

Code: Untitled.cpp Select all


case MQTT_EVENT_DATA:
ESP_LOGI(TAG, "MQTT_EVENT_DATA");
printf("TOPIC=%.*s\r\n", event->topic_len, event->topic);
printf("DATA=%.*s\r\n", event->data_len, event->data);
// 创建json数据解析对象
pJsonRoot = cJSON_Parse(event->data);
//如果是否json格式数据
if (pJsonRoot !=NULL)
{
printf("Data NULL!\r\n");
}
// 解析数据
// 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解析代码并将获取到的数据输出出去,应该如何修改代码?
Snipaste_2022-12-08_14-11-21.png
Snipaste_2022-12-08_14-11-21.png (167.04 KiB) Viewed 2308 times
这个是通过命令查看到的位置,就是代码中的第十五行。
Last edited by 超级小星星123 on Thu Feb 23, 2023 9:20 am, edited 1 time in total.

超级小星星123
Posts: 11
Joined: Fri Oct 21, 2022 9:36 am

Re: 在MQTT中的TCP样例中,在接受中断里添加cjson解析的部分

Postby 超级小星星123 » Thu Dec 08, 2022 8:08 am

问题已经解决了,需要重新创建一个task,然后在分配空间的时候建议在1500以上,否则就会出现栈空间溢出的情况,对于任务优先级分配根据实际的情况来安排,在新的task任务中进行数据的解析和处理操作就不会出现对于SPI占用异常的错误。

Who is online

Users browsing this forum: YisouSpider and 1 guest