从零开始学 QP 状态机环境安装与 Blinky 首个工程实战

这是 QP 状态机系列第六篇实战内容,Blinky 相当于 QP 框架里的 HelloWorld,先把 QP-bundle 套件装好、配置环境变量,再跑通控制台版闪灯例程,就能直观理解 QP 事件驱动、活动对象、定时信号的核心逻辑。很多新手一开始踩坑,大多是安装路径带空格、环境变量没生效、不会用 Make 编译,本篇优先在 PC 控制台跑通,不用单片机开发板,先看懂状态流转,之后再移植到 STM32 等硬件上,下面把组件清单、安装流程、编译运行、状态机逻辑、常见坑拆开讲清楚。

一、QP 套件包含组件清单

  • QP/C:C 语言版本核心状态机框架,本次 Blinky 使用
  • QM Modeler:图形化 UML 状态机建模工具,可以自动生成 C 代码
  • QTools:配套工具包,内置 MinGW、make、qspy 追踪调试工具
  • 配套例程:包含 console 控制台版本、Cortex-M 单片机版本 Blinky

二、控制台 Blinky 和硬件 Blinky 对比表

版本运行环境BSP 板级支持包效果上手门槛
控制台 BlinkyWindows/Linux/macOS 电脑模拟 LED 打印日志终端交替打印 LED ON/OFF低,不需要开发板
硬件 BlinkySTM32、Arduino 等 MCU操作寄存器控制真实 IO 口开发板 LED 周期性闪烁高,需要硬件、调试器

三、分步安装与环境验证步骤

  1. 下载 QP-bundle 安装包,优先官网获取对应系统版本,安装路径不要带空格,推荐 C:\qp,不要装在 Program Files 文件夹。
  2. 安装时勾选全部组件:QP/C、QM、QTools,安装完成后关闭所有旧终端窗口。
  3. 打开新 CMD,执行where make、where qspy,确认能正常打印路径;找不到就手动把 C:\qp\qtools\bin 加入系统 PATH。
  4. 进入 Blinky 例程目录:C:\qp\qpc\examples\workstation\blinky。
  5. 执行 make 编译,编译成功后进入 build 目录,运行 blinky.exe,终端会每 500ms 切换一次 ON/OFF 日志。
  6. 按下 Ctrl+C 退出程序,这就是第一个跑通的 QP 状态机工程。

四、Blinky 状态机核心逻辑

  1. 初始状态:进入 off 状态,熄灭 LED,同时启动 500ms 定时事件 TIMEOUT。
  2. 收到 TIMEOUT 信号,从 off 切换到 on 状态,点亮 LED,继续启动定时。
  3. 再次收到 TIMEOUT 信号,从 on 切回 off 状态,熄灭 LED,循环往复。
  4. 整个程序是事件驱动,不是 while 轮询,这也是 QP 状态机和普通裸机代码最大区别。

五、新手高频踩坑清单

  1. 安装路径带空格,make 脚本解析路径失败,直接编译报错。
  2. 终端窗口没重启,PATH 环境变量不生效,提示 make 不是内部命令。
  3. 混淆 QP/C、QP/C++、QP-nano 版本,打开不匹配的例程。
  4. 直接上手硬件版本,BSP 没有适配,优先建议先跑控制台版本验证框架。
  5. 把 Blinky 当成简单延时循环,忽略 QP 的事件队列、活动对象底层机制。

【相关 FAQ】

问题 1:从零开始学 QP 状态机系列第六篇实战安装与第一个 Blinky,Blinky 在 QP 状态机学习里是什么定位?

回答 1:从零开始学 QP 状态机系列第六篇实战安装与第一个 Blinky,Blinky 是 QP 框架入门的 HelloWorld 例程,用来理解事件驱动、状态跳转、定时信号、活动对象,优先在 PC 控制台验证,再移植单片机。

问题 2:从零开始学 QP 状态机系列第六篇实战安装与第一个 Blinky,安装 QP 套件的时候路径为什么不能带空格?

回答 2:从零开始学 QP 状态机系列第六篇实战安装与第一个 Blinky,QP 配套的 make 编译脚本对空格敏感,路径带空格会导致编译命令识别失败,所以推荐 C:\qp 这种简短无空格路径。

问题 3:从零开始学 QP 状态机系列第六篇实战安装与第一个 Blinky,控制台版 Blinky 和单片机硬件 Blinky 代码差别在哪里?

回答 3:从零开始学 QP 状态机系列第六篇实战安装与第一个 Blinky,核心状态机代码完全一致,差别只在 BSP 板级支持包,控制台版本打印文字模拟 LED,硬件版本操作单片机 IO 引脚。

【参考资料】

[2026-11-12](从零开始学 QP 状态机系列 —— 第六篇:实战!安装与第一个 Blinky)电子工程专辑

[2026-11-10](QP/C 官方入门文档:Blinky 控制台例程)Quantum Leaps

[2026-09-22](QP-bundle 套件介绍、QM 建模工具使用教程)State-Machine

[2026-08-14](QP 状态机 Blinky 移植到 Cortex-M0 教程)电子工程专辑

[2026-07-05](QP 框架事件驱动编程基础,区分轮询和状态机)Quantum Leaps 官方博客

【免责声明】

本文为 QP 状态机公开教程资讯整理,不同 QP 版本、操作系统、编译器会存在少量编译差异;Blinky 仅作为入门学习例程,实际嵌入式项目需要结合硬件 BSP、中断、内存管理重新适配,信息仅作为嵌入式技术学习参考,不构成商用项目直接移植的落地建议。

本文来自作者[曙轨追踪]投稿,不代表岳鹿科技网立场,如若转载,请注明出处:https://www.newsyuelu.com/kjyw/202611/314.html

赞 (0)
反馈

发表回复

本站作者后才能评论

评论列表(4条)

  • 曙轨追踪
    曙轨追踪 2026年11月15日

    我是岳鹿科技网的签约作者“曙轨追踪”!

  • 曙轨追踪
    曙轨追踪 2026年11月15日

    希望本篇文章《从零开始学 QP 状态机环境安装与 Blinky 首个工程实战》能对你有所帮助!

  • 曙轨追踪
    曙轨追踪 2026年11月15日

    本站[岳鹿科技网]内容主要涵盖:互联网行业的追踪与探索

  • 曙轨追踪
    曙轨追踪 2026年11月15日

    本文概览:这是 QP 状态机系列第六篇实战内容,Blinky 相当于 QP 框架里的 HelloWorld,先把 QP-bundle 套件装好、配置环境变量,再跑通控制台版闪灯例程,就能直观理解 QP 事件驱动、活动对象、定时信号的核心逻辑。很多新手一开始踩坑,大多是安装路径带空格、环境变量没生效、不会用 Make 编译,本篇优先在 PC 控制台跑通,不用单片机开发板,先看懂状态流转,之后再移植到 STM32 等硬件上,下面把组件清单、安装流程、编译运行、状态机逻辑、常见坑拆开讲清楚。

联系我们

联系:143 0457 151

工作时间:周一至周五,9:30-18:30,节假日休息

关注我们