1. WSL2环境搭建与配置
作为嵌入式开发者,我们经常面临开发环境的选择问题。传统上,STM32开发大多依赖Windows平台下的Keil或IAR,但这些IDE的编辑体验和开发效率往往不尽如人意。经过多次尝试,我发现WSL2 + VSCode的组合能够提供更流畅的开发体验,特别是对于习惯Linux环境的开发者。
WSL2的安装其实非常简单,只需在管理员权限的PowerShell中执行一条命令即可:
wsl --install -d Ubuntu-24.04
安装完成后,我们需要配置WSL与Windows系统的文件互访。WSL默认将Windows盘符挂载在/mnt目录下,你可以直接访问/mnt/c来操作C盘文件。反过来,在Windows中访问WSL文件也很简单:在文件资源管理器的地址栏输入\\wsl.localhost\Ubuntu-24.04就能直接进入WSL的文件系统。
我个人最喜欢的方式是在WSL终端中使用code .命令,这会自动在Windows端的VSCode中打开当前目录,并且安装必要的WSL扩展插件。这样你就能在Windows上享受VSCode的强大编辑功能,同时在WSL中运行编译和调试命令,两全其美。
提示:建议将工程文件放在Windows文件系统中,这样既能用Windows下的STM32CubeMX生成代码,又能在WSL中进行编译,避免了文件权限问题。
2. STM32CubeMX工程生成与配置
STM32CubeMX是ST官方推出的图形化配置工具,它能够大大简化STM32芯片的初始化过程。我通常会在Windows端安装STM32CubeMX,因为它的图形界面在Windows下运行更加稳定。
以常见的STM32F407芯片为例,打开STM32CubeMX后,选择"ACCESS TO MCU SELECTOR",输入你的芯片型号。在Pinout界面中,你可以直观地配置每个引脚的功能。比如要控制LED,只需找到对应的GPIO引脚,设置为输出模式即可。
时钟树的配置可能是最让人头疼的部分,但STM32CubeMX提供了自动计算功能。你只需要输入想要的主频,工具就会自动计算各个分频系数,确保时钟配置的正确性。
在Project Manager标签页中,有几点需要特别注意:
- Toolchain/IDE选择为"Makefile"(虽然我们用CMake,但这个选择会影响生成的代码结构)
- 勾选"Generate peripheral initialization as a pair of '.c/.h' files per peripheral"
- 建议启用"Backup previously generated files when re-generating"
点击GENERATE CODE后,STM32CubeMX会生成完整的工程框架,包括HAL库、启动文件、链接脚本等。这个生成的工程已经包含了所有必要的外设初始化代码,我们只需要在/* USER CODE BEGIN */和/* USER CODE END */之间添加自己的应用逻辑即可。
3. 交叉编译工具链配置
在WSL的Ubuntu环境中,我们需要安装ARM交叉编译工具链。Ubuntu 24.04的仓库中已经包含了较新版本的工具链:
sudo apt-get update
sudo apt-get install gcc-arm-n


305

被折叠的 条评论
为什么被折叠?



