前言
稚晖君新项目ElectronBot刚发布不久,且已经开源在了git,地址如下(GitHub - peng-zhihui/ElectronBot)。
主控芯片用的是STM32F405,开发工具用的是CLion,而且是C与C++混编。
但,CLion是一个收费软件,如果不是常用的生产工具,性价比就比较低 了,如果用其他方式进行和谐,也是不合法的,所以,就转用ST出的免费的IDE;在单片机上使用c++进行设计的可能是少数,由于单片机的性能资源、运行效率等问题,C++并不是单片机开发的主流语言,如果把这个项目再重构成C语言的,工程量也不少,那就用STM32CubeIDE来配置C++吧。
这里需要解决两个主要的问题:
1、CLion 工程与STM32CubeIDE的转换
2、C与C++的混编
一、工程转换
在通过STM32CubeIDE打开工程时,STM32CubeIDE自动会进行转换,不需要进行任何的修改。
打开工程,通过菜单栏:File→Open Projects from System...
找到工程保存的目录导入即可。
导入后会有如下两个提示,OK即可。
二、工程配置
1、工程转换
由于稚晖君CLion的工程是C与C++混编的,所以,先把工程转换成C++的工程,STM32CubeIDE 提个了方便的转换功能。右键选择即可。
如果是新版本的CubeIDE,在工程右键中找不到转换的功能,可通过如下方式。
在File——New中会有如下的功能
如果在File——New里也没有,要选择Other
2、添加头文件路径
这里可能是不同工程导致的头文件路径不全的问题。
我这里把GCC与G++的头文件路径都添加了一下,主要是Bsp与UserApp两个目录要添加进来。
GCC的头文件路径
G++的头文件路径
3、printf浮点支持
在main.cpp文件中,稚晖君使用了printf输出了浮点类型的数值,所以,这里添加上对printf_float的支持
4、源代码路径
添加源程序路径,主要是cpp文件的路径
5、编译结果
最后应用所有修改,进行编译。
结果显示,hex文件已经生成,没有错误,只有一个未使用变量的警告
最后声明
由于没有硬件,只是将CLion的工程导入到STM32CubeIDE中并修改了一些C++的配置,最后编译没有错误,具体的代码功能是不是完善,会不会因为各种原因导致的程序逻辑错误目前不可预知。