cjson輸出文本時遇到數字和浮點數就無法輸出,直接截斷:
例子: {"cmdType":2,"productId":"OST","deviceName":"dev_01","protoVersion":"2.0"}
生成Json時有用到
cJSON_AddNumberToObject就不正常,無法輸出數字。
錯誤: {"cmdType":
同樣代碼在PC上正常,在嵌入系統不正常。
原因:嵌入系統為了節省RAM和Flash占用,采用的時NewLib nano,不是完整功能的庫,不支持浮點數。
ESP8266 RTOS SDK 3.4解決辦法:
make menuconfig -> Component config ---> Newlib -->[ ] Enable 'nano' formatting options for printf/scanf family 取消此項選擇
重新編譯后printf sprintf snprintf浮點數輸出正常。
影響:
RAM占用少量增加,約100字節。
編譯后Bin文件Flash占用增加30K。