Skip to content

今天在开发智慧农业系统时遇到解析json文件过大的问题,arduinojson序列化需要8192个字节来保存数据,加入代码

C++
 StaticJsonDocument<8192> doc;

后cpu直接报错:

ERROR A stack overflow in task loopTask has been detected.

已知是主程序堆栈溢出,但是没有找到怎么增加主程序堆栈的方法 待解决 问题已经解决: API简单介绍 对象 JsonDocument 使用StaticJsonDocument<size> doc;或DynamicJsonDocument doc(size);方式声明JsonDocument对象; 使用StaticJsonDocument<size> doc;方式声明的对象将存储在栈内存中,推荐size不大于1K时使用该方式; 使用DynamicJsonDocument doc(size);方式声明的对象将存储在堆内存中,推荐size大于1K时使用该方式; size大小可以根据JsonDocument对象含有的节点数与值和数据长度计算得出,最保险的话可以根据json字符串(压缩形式)的长度len取值,size = len (8bit)、size = len2 (32bit)、size = len4 (64bit);

JsonDocument对象可以是JsonArray、JsonObject、JsonVariant三类引用类型; 果然是由于在局部创建了过多数据造成的

最后更新时间: