作者近期在官方IDE开发后发现了不足之处,因此转向使用**VSCode + 开源arm工具链 + OpenOCD**方案开发STM32。这一方案跨平台适用,对于读者来说具有较高的参考价值。
需要安装的软件如下:
1. STM32CubeMX:通过官方渠道可下载带makefile的HAL库工程。下载链接为:[链接地址](需登录后方可下载)。
2. VS Code:一款编辑器,下载链接为:[链接地址]。
3. GNU Arm Embedded Toolchain:适用于arm的GNU工具链,包含编译器、调试器等,需配置环境变量。下载链接为:[链接地址]。
4. OpenOCD(Windows版):开源的片上调试器,只需下载解压并配置环境变量。下载链接为:[链接地址]。
5. Zadig:用于安装Jlink的U驱动。虽然Jlink插上就能装驱动,但直接装的OpenOCD可能识别不到。下载链接为:[链接地址]。
接下来是安装步骤:
* 将Jlink接入电脑,打开软件,选择OptionsList All Devices,在下拉菜单中选择J-link,然后在右侧选择WinU,点击Reinstall Driver。
* 安装Git进行版本管理。下载链接为:[链接地址]。安装完成后,需要下载make文件,具体路径为:[链接地址],然后解压并拷贝相关文件到指定目录。
关于开发环境配置,需要注意以下几点:
* 包括Chinese (Simplified)、C/C++、C/C++ Snippets、ARM、Cortex-Debug等语言环境与工具的使用。
* 在VS Code中配置openocd.cfg文件,OpenOCD启动时会自动寻找该文件作为配置文件。同时需要下载STM32F103.svd文件,放在项目文件夹根目录。
* 在.vscode文件夹中新建launch.json文件。
还需要安装SEGGER Jlink驱动全家桶,下载链接为:[链接地址]。安装完成后记得添加环境变量。并在路径C:\Program Files (x86)\SEGGER\JLink\Samples\RTT中找到Jlink RTT例程源码压缩包,解压后将整个RTT文件夹复制到STM32工程中,并添加log.h文件。
包含特定日志库的头文件:
```cpp
#include "log.h" // USER CODE BEGIN Includes
// 其他必要的头文件或配置... // USER CODE END Includes
```
在程序的主循环中,实现日志输出功能:
```cpp
while (true) {
// USER CODE END WHILE
// USER CODE BEGIN 3
cnt++; // 计数器递增
LOGERROR("发生错误!"); // 输出错误日志
LOGI("带有参数的日志信息,CNT值为:%d", cnt); // 输出带有颜色的日志信息,可根据不同级别设置颜色
LOGWARNING("发生警告!"); // 输出警告日志信息,使用特定的颜色代码进行高亮显示
HAL_Delay(500); // 延时500毫秒
```