STM32 是一系列由 STMicroelectronics 生产的 32 位微控制器,广泛应用于嵌入式系统开发。网上大多数教程都是在 windows 在用 keil 开发,这里介绍在 Linux 服务器上搭建 STM32 的开发环境。
本文介绍 stm32 开发工具的安装。需要安装介个工具:
- 编辑器,写代码总需要一个编辑器吧。这里选择 vscode。
- stm32cubemx,st 公司开发出的用于生成代码的工具。显然比起从零开始写代码,我觉得改代码可能要轻松点。
- gcc 交叉编译器,咱写的代码需要经过编译才能在单片机上运行。
- 驱动。确切地说是让电脑能够识别单片机,把写好的代码传送到单片机上。这个和硬件高度相关,这里用 ch343 驱动。
- 调试工具,写代码总是离不开调试吧。openocd,open on chip debugger。
当然这些工具的安装并没有先后顺序,咱就一一开始吧。最后会以 hello world 的例子来介绍。
1. 编辑器安装
使用 vscode,当然也可以用 cursor。 去官网下载即可。
2. stm32cubemx 安装
STM32CubeIDE 是由 STMicroelectronics 提供的官方集成开发环境,它集成了代码编辑器、编译器、调试器等工具。 下载之前,需要在 st 官网上注册一个账户。
然后选择
- 访问 STM32CubeIDE 的官方网站下载最新版本的安装包:STM32CubeIDE。
- 运行安装脚本。例如,如果下载的文件名为
STM32CubeIDE_1.9.0_linux.tar.gz
,则解压后运行:
cd STM32CubeIDE_1.9.0_linux
./install.sh
3. 交叉编译工具
2.1. 安装 GCC ARM Embedded Toolchain
STM32CubeIDE 默认使用 GCC ARM Embedded Toolchain 进行编译。访问 GCC ARM Embedded Toolchain 的官方网站:GCC ARM Embedded。下载适合 Linux 的版本。
tar -xzf gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2
sudo mv gcc-arm-none-eabi-10.3-2021.07 /usr/local
echo 'export PATH=/usr/local/gcc-arm-none-eabi-10.3-2021.07/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
4. 安装 st-link 工具
当代码编译好之后,需要通过串口的方式把代码下载到单片机上。
5. 安装 OpenOCD
OpenOCD 全称是 open on chip debugger,是一个开源的调试器,用于与 STM32 微控制器进行通信。通过包管理器安装 OpenOCD。
sudo apt install openocd # ubuntu
sudo dnf install openocd # redhat
6. 点亮流水灯
到此为止,所有的工具都已经安装完成。这里用一个点亮流水灯的程序来验证前面的配置是正确的。 点亮流水灯就是 stm32 的 hello world。
6.1. 实现原理
流水灯就是一串led等连续发光。单片机有一堆引脚,有些引脚可以作为输出引脚。 当然,在引脚上能看到的就是电平的高低。led是单向导通的,需要在正极处输入高电平,在负级处输入低电平。这个时候有两种思路。
- 将led的负极连接到低电平,正极连接到单片机。当单片机输出高电平时候就
6.2. 代码生成
用stm32cubemx进行。此时有四个
通电实际运行。
总结
在 Linux 服务器上搭建 STM32 开发环境,可以充分利用 Linux 的稳定性和性能,为 STM32 开发提供强大的支持。通过上述步骤,你可以轻松地在 Linux 服务器上搭建起一个完整的 STM32 开发环境,开始你的嵌入式开发之旅。