硬件交互 | 嵌入式开发板智能助手 MCP —— 一句话查规格、看引脚、生成代码

1. Demo 简介

是什么: 一个基于 TRAE MCP(模型上下文协议)的嵌入式开发板智能助手,让 AI 直接查开发板规格、引脚图、生成代码模板,全程在对话中完成。

面向谁: 嵌入式开发者、电子爱好者、高校学生、创客——任何需要快速上手一块陌生开发板的人。

主要功能:

  • USB 自动识别:插上板子,自动检测 USB 芯片型号和串口号(支持 CH340/CP2102/FT232/ST-LINK)
  • 规格查询 + 引脚图:覆盖 8 个家族、19 块板子,一句话查 MCU 主频、Flash、GPIO、通信接口、完整引脚复用功能
  • 多板对比:一键横向对比不同板子的主频、存储、接口、无线能力
  • 代码自动生成:支持 Blink、串口、WiFi 扫描、I2C 扫描、SPI 回环、PWM 舵机、ADC、中断按键等 9 种模板,自动适配板子引脚和框架

2. Demo 创作思路

灵感来源: 每次拿到一块新板子,都要翻 datasheet(几十页到上百页)、查引脚图、写模板代码。一块 STM32 Blue Pill 的引脚图,搜 3 个网页还不一定找对。我想:能不能让 AI 记住这些信息,一句话就能查?

想解决的问题: 嵌入式开发中,"选型-查规格-看引脚-写代码"这个流程,每个环节都要跨多个网站、多个 PDF 来回切换,效率极低,新人更是无从下手。

为什么做这个方向: 选择 MCP 而不是独立 App,是因为 MCP 天然嵌入在 TRAE IDE 对话中——开发者不需要切换工具,一边写代码一边问 AI 板子信息,零上下文切换。硬件交互赛道,MCP 就是最好的"硬件接口"。

3. Demo 体验地址

演示视频: 0.20 复制打开抖音,看看【。。。,,的作品】嵌入式mcp # trae https://v.douyin.com/_QmXNZnRiz0/ :1pm V@Y.mQ 01/01 yTL:/

交互式 HTML 创意方案:

MCP创意方案.zip (7.0 KB)

源码仓库: 项目源码在本地,MCP 配置即装即用,可直接在 TRAE 中复现演示。

4. TRAE 实践过程

4.1 开发流程

整个 MCP 从零到可用,全部在 TRAE IDE 中完成,共经历以下关键步骤:

第一步:搭建 MCP 框架

  • 在 TRAE 中描述需求:“做一个嵌入式开发板信息查询的 MCP 工具”
  • AI 自动生成了 server.py 主框架、boards_db.json 数据库、usb_detector.py USB 检测模块
  • 配置 .trae/mcp.json,注册为 TRAE 可调用的 MCP Server

第二步:扩展硬件检测能力

  • 增加 serial_probe.py:通过串口通信探测板子启动信息
  • 增加 stm32_probe.py:按 STM32 Bootloader 协议读取芯片型号
  • 增加 usb_ids.json:USB VID/PID 数据库,覆盖常见开发板芯片

第三步:补充数据库 + 代码生成

  • 填充 19 块板子的完整规格和引脚信息
  • 实现 9 种代码模板生成器,根据板子自动选引脚、适配框架

第四步:拆分为独立 MCP

  • 原计划还包含手机 ADB 探测功能,但 TRAE 建议拆分,于是独立出 phone-mcp-server,保持每个 MCP 职责单一

4.2 关键踩坑

坑 1:CH340 无法自动烧录
这块 Blue Pill 的 CH340 只接了 TX/RX,没有连 DTR/RTS 控制线,导致无法通过串口自动复位进 Bootloader。MCP 能识别板子、生成代码,但"烧录"这一步被硬件限制卡住了。解决方案:换成正版 STM32 Nucleo 或带完整 CH340 引脚的板子即可。

坑 2:USB 识别不等于板子识别
CH340 的 VID:PID 是 1A86:7523,但这个芯片被几十种板子使用。仅靠 USB 信息无法区分 ESP32、Arduino Nano 还是 STM32 Blue Pill。需要通过串口协议探测做二次确认,目前 MCP 已支持 STM32 Bootloader 协议探测。

4.3 关键截图

【待补充 3】放 3 张以上截图,建议:


2.
3.

4.4 Session ID

【待补充 4】在 TRAE 对话界面点击分享按钮,复制不少于 3 个 Session ID,格式如:

  • Session ID : 2187345374230679:c154316e10bee720d71e895e247e2e71_6a2f3ee031740c34d9949a8d.6a2f3ee21728ef71d7108587.6a2f3ee031740c34d9949a8e:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/15 08:01:23)(MCP 开发过程)
  • Session ID 2:2187345374230679:fbfec6f9ffcc89e7d9f62948e86cb8be_6a2f3ee031740c34d9949a8d.6a2f416d1728ef71d7108606.6a2f416c9a9e78b00e7468b5:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/15 08:10:43)(MCP 补全过程)
  • Session ID 3:2187345374230679:f8c309e96a91ff14b7612def2681f5b8_6a3eb017ee8c6563b39739a0.6a3eb0e8ee8c6563b3973a17.6a3eb0e8ee8c6563b3973a15:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/27 01:03:36)(验证过程)
  • Session ID :2187345374230679:b78bf64baacd7d6428224ed20b8ccf87_6a3eb017ee8c6563b39739a0.6a45251093892828fb6991f1.6a45251093892828fb6991ef:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/7/1 22:32:48)(演示过程)

报名帖链接: 嵌入式开发板MCP(Model Context Protocol)


认真看了你们的项目,让我印象深刻的是你们把“开发板识别、引脚查询、代码模板生成”都做成 TRAE MCP 能力,因为嵌入式开发最耗时间的地方往往不是写第一行代码,而是在 datasheet、引脚图和示例工程之间来回切换;把这些放进 IDE 对话里能明显减少上下文切换。

如果方便的话,可以在帖子开头补一个更短的评委演示路径,比如“插入开发板 → MCP 识别 USB/串口 → 查询引脚和规格 → 生成 Blink 或 I2C 扫描代码”,同时说明目前支持 19 块板子和 CH340 自动烧录的限制,这样评委能更快看懂能力边界。

顺便说下,我们团队也在生活娱乐赛道做了《衍境》,偏互动影游方向,有空也来交流下 → 【生活娱乐赛道】衍境 Demo:EvoMap 驱动的互动影游智能体创作系统