[MCU 型号] [实验主题] 实验任务书
任务名称: [基于何种平台完成何种功能]
实验平台: [MCU 完整型号、开发板、模块具体型号]
使用外设: [UART、目标外设及外部器件]
开发工具: [配置工具、IDE、编译器]
工程名称: [工程名称]
任务要求: 独立创建工程,分阶段调试,不直接复制旧工程代码。上一阶段验收通过后,才进入下一阶段。
一、实验目标
本次实验需要完成以下功能:
- 新建独立工程,配置基础运行环境。
- 建立 UART 或其他可观察的调试输出。
- 配置目标外设,验证设备连接或通信状态。
- 完成最小功能操作。
- 获取结果,检查返回状态并验证实际行为。
- 完成参数变化、异常场景及适用的附加测试。
最终目标: [明确输入、操作、预期结果及成功标志。例如:给定参数执行一次操作,实测结果满足条件后输出 XXX TEST PASS。]
适用条件: [器件型号、硬件版本、关键假设;型号变化时需要调整的参数。未确认的信息标记“待确认”,不得当作事实。]
二、第一阶段:创建新的工程
2.1 创建工程
- 新建工程并选择
[MCU 完整型号]。 - 命名为
[工程名称]。 - 配置调试接口及系统时钟。
- 配置调试输出和目标外设。
- 选择开发环境并生成代码。
2.2 调试输出配置
| 参数 | 配置 |
|---|---|
| 外设实例 | [实际选择] |
| 引脚 | [按硬件及引脚复用确认] |
| 通信参数 | [如 115200、8N1] |
| 中断 / DMA | [按本实验需要配置] |
2.3 目标外设配置与接线
| 参数 | 配置 | 依据或说明 |
|---|---|---|
| 外设实例 / 工作模式 | [填写] | [填写] |
| 引脚及连接 | [填写] | [板卡原理图 / 实际接线] |
| 速率 / 时序 | [填写] | [适用条件] |
| 地址 / 数据格式 | [填写或不适用] | [器件手册] |
| 中断 / DMA | [填写] | [启用原因] |
说明供电、共地、电平兼容、上拉 / 下拉、片选、复位或保护引脚等适用条件。区分模块已有配置与需要外接的元件。
本阶段验收标准
- 工程创建成功,代码无编译错误。
- 程序可以下载并运行。
- 外设配置和接线已核对。
- 已保存配置文件及工程源码。
三、第二阶段:调试输出测试
3.1 实验目标
[建立稳定、可复现的调试输出,便于定位后续问题。]
3.2 实验要求
- 添加所需头文件和输出重定向。
- 在对应外设初始化完成后输出。
- 设置电脑端工具的通信参数。
- 输出固定测试文字,验证换行及复位后的行为。
只提供完成本阶段所需的最小示例。写明句柄、代码放置位置和 IDE / 编译器适用条件,避免直接给出整个实验的完整答案。
3.3 预期输出
[MCU] BOOT OK
DEBUG OUTPUT OK
[说明输出周期或触发条件。]
本阶段验收标准
- 输出正确,无乱码,换行正常。
- 复位后输出可重新开始。
本阶段通过后,才能进行目标设备测试。
四、第三阶段:目标外设 / 设备基础测试
4.1 实验目标
[验证连接、设备响应、标识或基本状态。]
4.2 基础知识
[解释本阶段必需的协议概念、地址表示、时序或状态含义。明确基础检测能够证明什么,以及尚不能证明什么。]
4.3 学习内容
学习 [API / 寄存器]。
| 参数 / 返回值 | 含义 | 本实验取值及依据 |
|---|---|---|
| [填写] | [填写] | [填写] |
要求理解句柄、参数单位、地址格式、超时及成功 / 失败返回值。
4.4 编程任务
- 定义必要参数。
- 执行基础检测。
- 获取并判断返回状态。
- 分别输出成功与失败信息。
- 基础检测失败时,停止依赖该结果的后续操作。
4.5 预期输出
[DEVICE] CHECK OK
失败时:
[DEVICE] CHECK FAIL
本阶段验收标准
- 正常连接时检测成功。
- 在适用且不会损坏硬件的异常条件下,能报告失败。
- 能解释检测结果的含义。
五、第四阶段:最小功能实现
5.1 实验目标
[明确本阶段的输入、操作、数量及目标结果。]
5.2 学习内容
学习 [API / 寄存器],解释关键参数与完成条件。
5.3 编程要求
- 确认前置检测通过。
- 定义输入数据和必要变量。
- 执行一次最小操作。
- 获取并检查返回状态。
- 输出关键参数和操作结果。
- 按器件手册等待完成或检查就绪状态,并设置超时边界。
- 失败时输出原因或状态,停止后续正常验证。
5.4 预期输出
[OPERATION] START
[关键参数] = [值]
[OPERATION] OK
失败时输出 [OPERATION] FAIL,不能继续报告最终成功。
本阶段验收标准
- 调用参数正确。
- 能判断操作返回状态。
- 能观察关键输入和结果。
- 已确认操作完成,或设备恢复就绪。
六、第五阶段:结果验证及附加测试
6.1 实验目标
[通过读回、测量、接收或外部观察验证实际结果。]
6.2 学习内容
[验证方法、相关 API、接收变量及结果判据。]
6.3 编程任务
- 确认前置操作成功且已完成。
- 获取实际结果,并判断获取操作是否成功。
- 输出实际结果与预期结果。
- 按明确判据比较结果。
- 所有必要条件同时成立才输出 PASS,否则输出 FAIL。
6.4 判断逻辑
PASS 条件: [前置检测成功] 且 [功能操作成功] 且 [完成 / 就绪确认成功] 且 [结果获取成功] 且 [结果符合预期]。
不能仅凭某个 API 返回成功,就认定整个实验成功。定时、模拟量或物理测量实验应给出容差、单位及测量条件。
6.5 最终预期输出
================================
[MCU] [TOPIC] TEST
================================
DEBUG OUTPUT OK
[DEVICE] CHECK OK
[OPERATION] START
[关键输入] = [值]
[OPERATION] OK
[VERIFY] START
[实际结果] = [值]
[VERIFY] OK
[TOPIC] TEST PASS
================================
6.6 附加验证
测试 A:改变输入或参数
[修改一个关键变量,给出对应的预期结果,验证功能确实生效。]
测试 B:验证主题特性
[如断电保持、复位行为、不同频率、边界值等;写清操作步骤与判据。]
测试 C:异常验证
[如合法的错误地址、超时或无响应场景;写明预期失败信息及程序后续行为。]
说明重复执行频率、器件寿命或其他与本实验直接相关的限制。不适用的附加测试明确标记“不适用”并说明原因。
七、常见问题与排查
| 现象 | 优先排查 |
|---|---|
| 无调试输出 | [供电、引脚、共地、初始化、输出重定向] |
| 输出异常 | [通信参数、时钟、数据格式] |
| 基础检测失败 | [接线、地址、模式、电平、时序] |
| 检测成功但操作失败 | [参数、保护状态、忙状态、超时] |
| 操作成功但验证失败 | [验证方法、执行顺序、完成条件、实际器件型号] |
| [主题特有现象] | [对应的具体排查顺序] |
八、实验完成标准
只有同时满足以下要求,才认为本次任务完成:
- 独立工程可以编译、下载、运行。
- 调试输出正常。
- 目标外设 / 设备基础检测通过。
- 最小功能操作完成。
- 实际结果满足明确的验证判据。
- 正确输出最终 PASS,异常时不会误报成功。
- 参数变化测试通过。
- 主题特性与异常测试完成,或已说明不适用。
正式任务书需将上述条目改写为本实验具体参数、行为和可观察结果。
九、需要提交的实验成果
- 完整工程: 配置文件及全部必要源码。
- 调试输出证据: 截图或日志,证明基础输出正常。
- 基础检测证据: 设备状态或通信结果。
- 功能验证证据: 展示输入、实际结果及最终判定。
- 附加测试证据: 参数变化、主题特性及异常测试结果。
- 实验总结: 遇到的问题、定位过程、解决方法和学习收获。
十、思考题
- [本实验涉及的硬件或协议原理是什么?]
- [关键参数的含义、单位或编码方式是什么?]
- [两个容易混淆的概念有什么区别?]
- [相关变量、指针或句柄为什么这样使用?]
- [为什么需要等待完成或检查状态?]
- [为什么 API 成功不能替代实际结果验证?]
- [遇到某种典型故障时,如何逐步定位?]
本次实验重点: [用一句话列明本实验要掌握的初始化、接口调用、状态判断、调试和验证能力。]
模板使用规则
本模板依据 stm32-learning/tasks/04-eeprom.md 提炼:
https://github.com/wwng2333/stm32-learning/blob/main/tasks/04-eeprom.md
- 保留“基本信息 → 实验目标 → 分阶段操作与验收 → 故障排查 → 完成清单 → 成果提交 → 思考题”的顺序。
- 阶段数量按任务调整:基础环境、可观察输出、基础检测、最小功能、结果验证是默认流程,不强行把所有主题写成读写实验。
- 每阶段明确目标、操作、预期现象和验收标准;需要学习接口时解释参数及返回值。
- 给出最小示例和必要提示,保留学生独立实现空间。
- 硬件、引脚、参数和时序以实际平台及器件资料为依据;不照搬 EEPROM 的地址、等待时间或上拉配置。
- 每项关键要求必须对应可观察的验收证据;成功和失败路径均需明确。
- 生成正式任务书后,删除填写提示及本节;检查所有占位项均已替换,未确认项明确标记。