关于 pin-assignment
用于规划特定开发板引脚的技能,并区分逻辑声明 ID 与物理 GPIO 编号。它核对目标板约束,并按要求保留声明格式和顺序。
主要功能
- 01解析特定开发板引脚
- 02信号能力分类
- 03检查保留引脚
- 04分配稳定逻辑 ID
- 05按序生成 C++ 声明
- 06分阶段报告验证证据
适用场景
- 01为指定开发板规划引脚
- 02按要求顺序生成声明
- 03根据外设检查候选引脚
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wedsamuel1230/ embedded-engineering-skills --skill pin-assignment安装后在 Claude Code 中输入/pin-assignment确认已加载。
详细介绍
引脚分配
制定适配开发板的引脚规划,同时保留仓库的声明约定。逻辑声明 ID 不会自动成为物理 GPIO 编号;请将这两层区分开来。
信息收集
记录准确的开发板/修订版、MCU/模块、框架/核心版本、工具链、信号名称、方向、电压、电流、上拉/下拉要求、总线所有权、启动/调试/USB/无线电限制,以及用户需要的是声明、物理接线,还是两者兼有。先通过 ../board-support/SKILL.md 确定目标;对于所需的引脚建议用途,其 resolution_status 必须为 resolved。选择物理引脚前,先加载 ../../references/boards/ 下匹配的文件。如果开发板属于缺少身份字段的有限系列,请暂停并请求补充信息,不要使用相似的配置文件。
流程
- 将每个信号归类为输入、输出、模拟、PWM、总线、中断、启动、调试、USB、闪存、PSRAM 或无线电相关。
- 保留开发板特定的闪存、PSRAM、USB、启动绑带、调试和默认总线引脚,除非该开发板的准确文档批准复用。
- 如果候选引脚的方向、上拉/下拉能力、电压、电流、ADC、PWM 或协议行为与信号不匹配,则予以排除。
- 保持逻辑 ID 稳定,并按用户要求的固定顺序分配。
- 如果用户只要求声明,则仅以纯文本输出声明。不要添加代码围栏、标题、说明或尾随注释。
- 如果用户要求物理引脚映射,则单独提供,并标明假设和有来源依据的限制。
必需的声明约定
对于用户的自定义输出模式,按数字顺序使用原始 C++ 声明:
constexpr int btn_esc = 101;
constexpr int btn_enter = 102;
constexpr int led_status = 103;
为每个请求的信号使用下一个连续的逻辑值。除非用户明确将这些值定义为物理 GPIO 编号,否则它们都是稳定的逻辑标识符。绝不能用枚举、宏、数组、命名空间、说明性包装或重新排序的声明列表替换此格式。
避免牵强解释
| 取巧说法 | 应对方式 |
|---|---|
| “这个引脚大概没被占用。” | 检查对应开发板的准确参考资料和已启用的外设。 |
| “GPIO34 在所有 ESP32 上都能驱动 LED。” | 排除经典 ESP32 上仅支持输入的 GPIO34-39,用于输出的情况;区分 ESP32-S3,并核实其模块引脚表。 |
| “GPIO0 只是另一个普通输出。” | 分配前检查其启动绑带作用和复位电平。 |
| “编译通过了。” | 接线和目标行为仍未验证。 |
| “我可以在代码周围解释这些声明。” | 在仅声明模式下,只输出未经修饰、按顺序排列的代码行。 |
验证
- 声明名称和值均为
constexpr int,并从要求的起始 ID 开始严格递增。 - 对于准确的开发板,所有物理输出均避开仅支持输入的引脚、闪存/PSRAM、USB 以及未经批准用于启动绑带的引脚。
- 电压/电流和上拉要求均有来源依据,或明确标注为未知。
- 分别报告构建验证、上传验证、硬件验证和系统验证。
共享输出规范
使用共享的 Arduino 技能规范:说明假设、所需工具及版本、实现步骤、各验证阶段的测试/证据、已知限制以及恢复/安全说明。
评论
支持 Markdown