stm32f407+cjson的避坑
1、添加cjson库文件后,编译工程文件,报错,提示
…\CJSON\test.c(461): error: #268: declaration may not appear after executable statement in block
如下图所示:
解决办法:勾选上c99 Mode后,重新编译即可编译通过。
2、工程使用RTOS或者裸机代码,编译完成后,使用cjson库函数组建json格式数据,系统无故死机,此时极大原因是heap_size()过小导致。解决办法查找在工程文件中按CTRL+F快捷键选择current_project功能选项查找heap_size(),具体操作
如下图:
当查找到当前位置时,按需调整heap_size()大小,我这里调整为0x00001000,实际按照自己板子资源调整。
3、在代码中循环调用json函数,出现死机情况,极大可能是 cJSON_Delete(root);函数未使用,或者使用错误,该函数必须紧跟char *out=cJSON_PrintUnformatted(root);后面;。