目录
3. Open OCD (On-Chip Debugger)
采用STM32CubeMX + CLion进行开发。
1. STM32CubeMX
1.1 下载地址:意法半导体官网 (下载需注册ST账号)
1.2 作用:用于配置引脚和外设
1.3 过程:
正常下载安装即可
2. CLion
2.1 下载地址:JetBrains官网 (试用可使用学生认证)
2.2 作用:敲代码。(在代码格式化,代码提示等方面优于Keil)
2.3 过程:
正常下载安装即可
3. Open OCD (On-Chip Debugger)
3.1 下载地址:Open OCD官网
3.2 作用:下载代码
3.3 过程:
下载后解压即可,不需要进行安装
4 Arm GNU ToolChain
4.1 下载地址:Arm官网(官网布局挺乱的)
4.2 作用:交叉编译代码
4.3 过程:
正常下载安装即可,安装后需将bin文件夹添加至环境变量
就是这个:10 2021.10\bin
重启电脑,然后在命令行中输入arm-none-eabi-gcc以检查是否成功
说明安装成功
5 CLion配置
首先来到设置,把路径填写了
假如没有这个选项,转到->设置 插件
把嵌入式关闭再打开就可以了
关于工具链那一坨,CLion版本在2022.3.3及以上应该是不用关心的
6 项目创建
打开STM32CubeMX,根据情况选择合适的选项创建
选择项目存放路径,填写项目名称,更改IDE类型
转到Code Generator,把这个勾上,然后就可以GENERATE CODE了
打开CLion新建项目,嵌入式(没有这个选项就去插件那里关掉再打开)
从现有的源创建,并选择符合实际的配置文件
编写代码后,运行即可将代码下载到单片机
通过CubeMX生成的项目,所有代码均应写在 USER CODE BEGIN - USER CODE END之间
否则代码会在下一次生成时被替换
7 进阶配置
7.1 重定向printf()
在usart.c中可以将其重定向至串口输出,函数内添加需要的操作
注意printf输出东西的时候,最后需要跟\n当然\r\n也行
当然同样也有__io_getchar()用于重定向输入,应该是这样的?没有试过
/* USER CODE BEGIN 1 */
int __io_putchar (uint8_t ch) {
return 1;
}
/* USER CODE END 1 */
7.2 Debug
debug正常使用即可
如果不行,在CMakeLists里面将编译优化改掉,比如O0
改动将会在下一次生成代码后消失,如需要可在CMakeLists_template中修改
debug可能还会查看寄存器,这个功能需要.svd文件,只有安装了Keil的包以后才能得到
7.3 C++支持
C++提供了许多令人心动的特性,这里提供一种主程序为C并链接C++文件的方法
首先在对应目录下,新建对应文件
然后重新生成代码,不然会显示文件不处于项目中
代码参考如下,函数whoo不包含C++内容,类yep为C++内容
注意,在hpp文件中需要把对应语言声明放在对应位置
hey.cpp
#include "hey.hpp"
#include <vector>
class yep {
public:
yep ();
};
yep::yep () {
auto a= std::vector<int>();
}
int whoo () {
int a = 1;
return a;
}
hey.hpp
#ifndef HEY_HPP
#define HEY_HPP
#ifdef __cplusplus
extern "C" {
#endif
int whoo();
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
class yep;
#endif
#endif // HEY_HPP