当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]在本指南中,我们将使用我们的新环境来构建和闪光一个项目到一个真正的微控制器-流行的STM32F103C8T6“Blue Pill”。

在第一篇文章中,我们从头开始构建了一个干净的、完全可控的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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭