使用模板在STM32 Blue Pill上启动“Blinky”项目
扫描二维码
随时随地手机看文章
在第一篇文章中,我们从头开始构建了一个干净的、完全可控的Zephyr RTOS开发环境。现在是时候让它发挥作用了。
在本指南中,我们将使用我们的新环境来构建和闪光一个项目到一个真正的微控制器-流行的STM32F103C8T6“Blue Pill”。
为此,我们将使用一个最小的、生产就绪的模板,该模板预先配置为Visual Studio Code中的无缝体验,并解决了开箱即用的常见硬件问题。
1. 你需要什么
在我们开始之前,请确保一切都准备好了。硬件很简单,如果您按照我们的第一个指南进行操作,软件应该已经配置好了。
硬件:
•STM32F103C8T6“Blue Pill”板
•ST-Link V2程序员
•连接线(跳线)
软件:
•一个完整配置的Zephyr RTOS环境(Python, Git, West, SDK等)。
•Visual Studio Code与推荐的扩展(包括C/ c++, CMake工具,和任务管理器)。
刚刚开始?如果你还没有准备好你的开发环境,请先按照我的详细指南:Manual Zephyr RTOS Installation on Windows。此项目模板假定您的环境已经准备就绪。
2. 快速入门:从零到闪烁
重要:确保您的Zephyr环境已激活!zephyr-env运行。CMD -你的终端应该在提示符下显示(.venv)。
2.1. 获取项目模板
将存储库克隆到本地机器并在Visual Studio Code中打开它:
2.2. 连接硬件
通过SWD接口连接ST-Link至Blue Pill:
•Swdio→Swdio
•SWCLK→SWCLK
•GND→GND
•3.3v→3.3v
然后将ST-Link插入电脑的USB接口。
2.3. 构建项目
我们将使用VS Code任务来简化工作流。你有两个选择:
选项A:命令面板
•按Ctrl+Shift+B或进入“Terminal→Run Task…”
•从下拉菜单中选择Build
选项B:任务浏览器(推荐)
•打开任务资源管理器面板(侧栏)
•单击Build任务旁边的play按钮
✅等待构建完成。您应该在终端中看到构建成功。
2.4. 闪光板
使用相同的方法运行Flash (64k)任务。
运行Flash (128k)。
注意:如果闪烁失败无效的闪存大小错误,您的芯片可能有64KB的闪存。使用Flash (64k)任务代替。
2.5. 庆祝!
PC13上的LED现在应该每秒闪烁一次。您刚刚运行了第一个Zephyr应用程序!
3. 引擎盖下:是什么让这个模板聪明
3.1. 硬件配置(bluepill_f103c8.overlay)
覆盖文件告诉Zephyr我们的电路板是如何连接的:
主要特点:
•配置为ACTIVE_LOW的LED(当引脚为LOW时亮)
•禁用JTAG,启用SWD进行调试
•引脚PA15, PB3, PB4现在可用于您的应用
3.2. 项目配置(Project .conf)
这条单线使OpenOCD能够在闪烁期间自动停止和重置微控制器-不再手动按reset按钮!
3.3. 应用程式码(src/main.c)
让我们看看实际的闪烁代码:
这里发生了什么:
1. 我们使用my-led别名从设备树中获取LED配置
2. 检查GPIO端口是否准备好
3. 配置引脚作为输出
4. 在无限循环中每秒切换LED
注意,我们从来没有硬编码pin -所有的东西都来自设备树。这使得代码可移植和可维护。
3.4. VS Code工作流
任务。json:定义Build、Flash和Clean脚本。它还包括一个Flash (128k)任务,因为一些C8T6主板秘密包含一个128kb闪存的芯片。如果标准闪存失败,这个替代任务通常可以解决问题。
c_cpp_properties。这个文件配置IntelliSense(代码完成)。它指向一个compile_commands。Zephyr的构建系统自动生成的json文件。重要:您必须至少运行一次构建任务,以使代码完成工作完美!
4. 常见问题处理
❌“AP写入错误,复位不会停止”
发生时:构建干净或项目克隆后的第一次flash。这只能发生一次,在下次删除构建文件夹之前。
原因:OpenOCD不能停止正在运行的微控制器。
解决方案:
1. 按住蓝色药丸上的RESET按钮
2. 在VS Code中运行Flash任务
3. 当出现“正在下载…”消息时,释放RESET
预防:确保在prj.conf(已经包含)中设置了CONFIG_DEBUG=y。
❌“Flash写入失败” / “Flash大小无效”
原因:你的芯片有64KB的闪存,而不是128KB。
解决方案:使用Flash (64k)任务代替Flash (128k)。
❌“west: command not found”
原因:西风环境未激活。
解决方法:运行zephyr-env。cmd (Windows)或源环境脚本。
您的提示符应该显示(.venv)。
本文编译自hackster.io





