Skip to the content.

[MCU 型号] [实验主题] 实验任务书

任务名称: [基于何种平台完成何种功能]

实验平台: [MCU 完整型号、开发板、模块具体型号]

使用外设: [UART、目标外设及外部器件]

开发工具: [配置工具、IDE、编译器]

工程名称: [工程名称]

任务要求: 独立创建工程,分阶段调试,不直接复制旧工程代码。上一阶段验收通过后,才进入下一阶段。

一、实验目标

本次实验需要完成以下功能:

  1. 新建独立工程,配置基础运行环境。
  2. 建立 UART 或其他可观察的调试输出。
  3. 配置目标外设,验证设备连接或通信状态。
  4. 完成最小功能操作。
  5. 获取结果,检查返回状态并验证实际行为。
  6. 完成参数变化、异常场景及适用的附加测试。

最终目标: [明确输入、操作、预期结果及成功标志。例如:给定参数执行一次操作,实测结果满足条件后输出 XXX TEST PASS。]

适用条件: [器件型号、硬件版本、关键假设;型号变化时需要调整的参数。未确认的信息标记“待确认”,不得当作事实。]


二、第一阶段:创建新的工程

2.1 创建工程

  1. 新建工程并选择 [MCU 完整型号]。
  2. 命名为 [工程名称]。
  3. 配置调试接口及系统时钟。
  4. 配置调试输出和目标外设。
  5. 选择开发环境并生成代码。

2.2 调试输出配置

参数 配置
外设实例 [实际选择]
引脚 [按硬件及引脚复用确认]
通信参数 [如 115200、8N1]
中断 / DMA [按本实验需要配置]

2.3 目标外设配置与接线

参数 配置 依据或说明
外设实例 / 工作模式 [填写] [填写]
引脚及连接 [填写] [板卡原理图 / 实际接线]
速率 / 时序 [填写] [适用条件]
地址 / 数据格式 [填写或不适用] [器件手册]
中断 / DMA [填写] [启用原因]

说明供电、共地、电平兼容、上拉 / 下拉、片选、复位或保护引脚等适用条件。区分模块已有配置与需要外接的元件。

本阶段验收标准


三、第二阶段:调试输出测试

3.1 实验目标

[建立稳定、可复现的调试输出,便于定位后续问题。]

3.2 实验要求

  1. 添加所需头文件和输出重定向。
  2. 在对应外设初始化完成后输出。
  3. 设置电脑端工具的通信参数。
  4. 输出固定测试文字,验证换行及复位后的行为。

只提供完成本阶段所需的最小示例。写明句柄、代码放置位置和 IDE / 编译器适用条件,避免直接给出整个实验的完整答案。

3.3 预期输出

[MCU] BOOT OK
DEBUG OUTPUT OK

[说明输出周期或触发条件。]

本阶段验收标准

本阶段通过后,才能进行目标设备测试。


四、第三阶段:目标外设 / 设备基础测试

4.1 实验目标

[验证连接、设备响应、标识或基本状态。]

4.2 基础知识

[解释本阶段必需的协议概念、地址表示、时序或状态含义。明确基础检测能够证明什么,以及尚不能证明什么。]

4.3 学习内容

学习 [API / 寄存器]。

参数 / 返回值 含义 本实验取值及依据
[填写] [填写] [填写]

要求理解句柄、参数单位、地址格式、超时及成功 / 失败返回值。

4.4 编程任务

  1. 定义必要参数。
  2. 执行基础检测。
  3. 获取并判断返回状态。
  4. 分别输出成功与失败信息。
  5. 基础检测失败时,停止依赖该结果的后续操作。

4.5 预期输出

[DEVICE] CHECK OK

失败时:

[DEVICE] CHECK FAIL

本阶段验收标准


五、第四阶段:最小功能实现

5.1 实验目标

[明确本阶段的输入、操作、数量及目标结果。]

5.2 学习内容

学习 [API / 寄存器],解释关键参数与完成条件。

5.3 编程要求

  1. 确认前置检测通过。
  2. 定义输入数据和必要变量。
  3. 执行一次最小操作。
  4. 获取并检查返回状态。
  5. 输出关键参数和操作结果。
  6. 按器件手册等待完成或检查就绪状态,并设置超时边界。
  7. 失败时输出原因或状态,停止后续正常验证。

5.4 预期输出

[OPERATION] START
[关键参数] = [值]
[OPERATION] OK

失败时输出 [OPERATION] FAIL,不能继续报告最终成功。

本阶段验收标准


六、第五阶段:结果验证及附加测试

6.1 实验目标

[通过读回、测量、接收或外部观察验证实际结果。]

6.2 学习内容

[验证方法、相关 API、接收变量及结果判据。]

6.3 编程任务

  1. 确认前置操作成功且已完成。
  2. 获取实际结果,并判断获取操作是否成功。
  3. 输出实际结果与预期结果。
  4. 按明确判据比较结果。
  5. 所有必要条件同时成立才输出 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:异常验证

[如合法的错误地址、超时或无响应场景;写明预期失败信息及程序后续行为。]

说明重复执行频率、器件寿命或其他与本实验直接相关的限制。不适用的附加测试明确标记“不适用”并说明原因。


七、常见问题与排查

现象 优先排查
无调试输出 [供电、引脚、共地、初始化、输出重定向]
输出异常 [通信参数、时钟、数据格式]
基础检测失败 [接线、地址、模式、电平、时序]
检测成功但操作失败 [参数、保护状态、忙状态、超时]
操作成功但验证失败 [验证方法、执行顺序、完成条件、实际器件型号]
[主题特有现象] [对应的具体排查顺序]

八、实验完成标准

只有同时满足以下要求,才认为本次任务完成:

正式任务书需将上述条目改写为本实验具体参数、行为和可观察结果。

九、需要提交的实验成果

  1. 完整工程: 配置文件及全部必要源码。
  2. 调试输出证据: 截图或日志,证明基础输出正常。
  3. 基础检测证据: 设备状态或通信结果。
  4. 功能验证证据: 展示输入、实际结果及最终判定。
  5. 附加测试证据: 参数变化、主题特性及异常测试结果。
  6. 实验总结: 遇到的问题、定位过程、解决方法和学习收获。

十、思考题

  1. [本实验涉及的硬件或协议原理是什么?]
  2. [关键参数的含义、单位或编码方式是什么?]
  3. [两个容易混淆的概念有什么区别?]
  4. [相关变量、指针或句柄为什么这样使用?]
  5. [为什么需要等待完成或检查状态?]
  6. [为什么 API 成功不能替代实际结果验证?]
  7. [遇到某种典型故障时,如何逐步定位?]

本次实验重点: [用一句话列明本实验要掌握的初始化、接口调用、状态判断、调试和验证能力。]


模板使用规则

本模板依据 stm32-learning/tasks/04-eeprom.md 提炼: https://github.com/wwng2333/stm32-learning/blob/main/tasks/04-eeprom.md

  1. 保留“基本信息 → 实验目标 → 分阶段操作与验收 → 故障排查 → 完成清单 → 成果提交 → 思考题”的顺序。
  2. 阶段数量按任务调整:基础环境、可观察输出、基础检测、最小功能、结果验证是默认流程,不强行把所有主题写成读写实验。
  3. 每阶段明确目标、操作、预期现象和验收标准;需要学习接口时解释参数及返回值。
  4. 给出最小示例和必要提示,保留学生独立实现空间。
  5. 硬件、引脚、参数和时序以实际平台及器件资料为依据;不照搬 EEPROM 的地址、等待时间或上拉配置。
  6. 每项关键要求必须对应可观察的验收证据;成功和失败路径均需明确。
  7. 生成正式任务书后,删除填写提示及本节;检查所有占位项均已替换,未确认项明确标记。