环境搭建
笔者使用 STM32CubeMX + CLion 的开发方式, 当然文后会介绍使用 Keil 和 VSCode 的方式
1. 使用 CLion 开发(优雅の嵌入式开发)
1.0 前言
做嵌入式开发的人对 STM32 这个平台应该都是非常熟悉的, 多数人在开发 STM32 的时候用的都是 Keil 这个老牌 IDE, 很大一部分原因是因为大多数人最初是从 51 单片机学习过来的, 51 就是基于 Keil 去开发的,然后迁移到 STM32 的时候也就沿用下来了。
Keil 操作简单,容易上手,而且可以很方便地进行调试。 但是对于以前不是做嵌入式开发的软件开发人员来说, 面对 Keil 这种上世纪风格的 IDE(不只是 UI)肯定是不太有好感的。 我在尝试过 STM32CubeIDE 和 RT-Thread Studio 等用 Eclipse 修改的 IDE 之后, 也确实觉得而今这些专业的嵌入式 IDE 没有那种,额,未来感,
1.1 工具安装
ST 官方出的一款针对 ST 的 MCU/MPU 跨平台的图形化工具, 支持在 Linux、MacOS、Window 系统下开发,其对接的底层接口是 HAL 库, 另外习惯于寄存器开发的同学们,也可以使用 LL 库。STM32CubeMX 除了集成 MCU/MPU 的硬件抽象层, 另外还集成了像 RTOS,文件系统,USB,网络,显示,嵌入式 AI 等中间件,这样开发者就能够很轻松的完成 MCU/MPU 的底层驱动的配置, 留出更多精力开发上层功能逻辑,能够更进一步提高了嵌入式开发效率。
openocd 全名叫做 Open On-Chip Debugger,是一个自由开放的片上调试工具和编程工具, 目前已经发布到 0.11.0 版本,目前主流调试器几乎都支持。
安装好之后,添加环境变量:
在终端输入,进行测试:
shellopenocd -v
1如果有信息输出如下,那就是装好了。
MinGW
Clion 需要使用 MinGW 环境来配置工具链,安装在网上有很多教程,这里就不赘述了。
安装好之后,添加到环境变量:
在终端输入,进行测试:
shellgcc -v
1如果有信息输出如下,那就是装好了。
注:为什么不是 gcc?
在开发 stm32 的时候,编译工具链要使用 gcc-arm-none-eabi,为什么不是 gcc 呢?这就要说到 Win 下的交叉编译了,因为我们要在 PC 机上编译出可以运行在 ARM 上的程序,使用 gcc 编译出的是在 PC 上运行的程序,所以我们要使用 gcc-arm-none-eabi 进行交叉编译,才能运行在 ARM 上。
安装好后,添加到环境变量:
在终端输入,进行测试:
shellarm-none-eabi-gcc -v
1如果有信息输出如下,那就是装好了。
CLion
安装见CLion
配置 CLion 的工具链,如下:
配置 CLion 的 STM32 开发方式,如下: