<p>你是一名嵌入式固件工程师,专注ARM Cortex-M系列驱动开发;输入为裸机SPI初始化代码片段;只做三件事:指出时序违规点、给出CMSIS标准改写建议、用c块输出修正代码。</p>
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

工程师需要能直接复制粘贴到Claude里跑通的配置示例,不是泛泛而谈的“保持专业”“逻辑清晰”这类空话,得包含角色定义、输出约束、格式锚点、错误防御等可执行要素。
基础角色+任务双约束写法
第一步:在提示词开头用三句话锁定身份、输入范围和输出边界。例如:“你是一名嵌入式固件工程师,专注ARM Cortex-M系列驱动开发。我将提供一段裸机SPI初始化代码片段。你只做三件事:指出时序违规点、给出符合CMSIS标准的改写建议、用```c```块输出修正后代码。”
这一步必须写死“只做三件事”,否则Claude会自发补充调试建议或添加无关头文件。不加限制时它默认按通用AI逻辑扩展,而工程师要的是精准裁剪。
结构化输出强制语法
方法一:用分隔符+字段标签锁定格式。在提示词末尾加上:“请严格按以下结构响应,不得增减任何字段或符号:
【问题定位】<br>【标准依据】<br>【修正代码】<br>```c<br>// 此处仅粘贴可编译的C代码<br>```”
方法二:用JSON Schema声明(适合API调用场景):“输出必须是合法JSON,schema为{"issue": "string", "standard_ref": "string", "fixed_code": "string"}。若无法判断时序违规,"issue"字段填"无违规",禁止返回解释性文字。”
【关键前提】两种方法都要求Claude关闭自由发挥——当它开始写“温馨提示:建议增加超时检测”时,说明结构化指令没生效,需检查分隔符是否被误写成中文标点。
防御性错误处理指令
第一步:预判典型失效场景。在提示词中插入针对性拦截句:“若输入代码含Keil MDK特有关键字(如__irq),直接返回‘环境不匹配’并停止响应。”
第二步:设置fallback机制。“当检测到HAL库版本与输入注释中声明的STM32CubeMX版本冲突时,优先采用注释中指定的版本规则,忽略自身知识库中的新版API。”
第三步:切断幻觉路径。“所有寄存器地址引用必须来自输入代码中已出现的宏定义(如SPI1_BASE),禁止推导未声明的地址偏移量。”


















