前言
由于工作需要,需要把一个JSON库移植到STM32上,实际上MDK已经有了JSON包,只需要从keil官网上下载JSON pack再导入就行,有兴趣的可以看这篇文章。这篇文章主要讲解如何把cJSON移植到STM32。
下载并移植cJSON库
首先去github下载cJSON库,链接:https://github.com/DaveGamble/cJSON
cJSON有三个源文件及其对应的头文件:cJSON,cJSON_Utils,test。我们主要使用cJSON和test,把这些文件拷贝到keil工程目录下,并添加入keil工程目录。
由于test.c文件里面有main主函数,可以把这个主函数改一下,然后在自己工程的main主函数调用该测试函数即可。
保存,编译,烧写代码。
注意事项
- 由于cJSON使用printf打印数据,要先重定向printf输出到串口,之后用串口调试工具查看cJSON调试信息,具体做法可以点击这里;
正常运行cJSON的测试代码需要3KB的heap,如果芯片内存足够,可以在启动文件(startup_XXX.s)里修改。
我这次项目使用的芯片是STM32F051,默认大小是512B,不修改这里的话解析test文件的json是会出错的;cJSON的文档查看github即可;
其它
keil版本:uVision 5.2.1a 芯片型号:STM32F051