项目简介
本项目为开发者提供了解嵌入式开发完整生命周期的机会,着重于固件开发。项目划分成四个阶段,逐步引入团队常用的通信协议,从开发板原型设计起步,到实现板间信息通信。开发者能在项目中学习到从C++基础、类级软件设计到硬件调试等成为固件工程师所需的各项技能。
项目的主要特性和功能
- 多通信协议学习:包含UART、I2C、SPI和CAN四种常见通信协议,深入理解其在嵌入式系统中的应用。
- 驱动开发实践:通过编写TMP117、MAX22530等不同硬件设备的驱动程序,掌握基本和高级的驱动开发技巧。
- 硬件调试技能:运用逻辑分析仪、示波器等工具进行波形分析和数据验证,提升硬件调试能力。
- 面向对象编程:在项目中实践C++的面向对象编程,提高代码的可维护性和可扩展性。
安装使用步骤
环境准备
确保已安装C++编译器、相关开源库和工具(如Sphinx、Doxygen等)。
代码获取
已下载本项目的源码文件。
各阶段操作
阶段1:UART
- 阅读Nucleo、UART相关文档,了解打开串口控制台的方法。
- 修改
targets/phase1/main.cpp
文件,实现从用户读取两个数字并输出它们的和。 - 编译并运行代码,测试功能,尝试输入异常数据进行边界测试。
- 向指定的高级固件成员展示代码,通过后进入下一阶段。
阶段2:I2C
- 阅读FTB、I2C、TMP117数据手册和Saleae逻辑分析仪文档。
- 修改
targets/phase2/main.cpp
和src/dev/TMP117.cpp
文件,实现温度读取和UART输出。 - 使用Saleae逻辑分析仪解码波形,确认数据与UART输出匹配。
- 对TMP芯片进行加热和冷却操作,验证温度数据更新。
- 向高级成员展示代码和波形记录,通过后进入下一阶段。
阶段3:SPI
- 阅读SPI、MAX22530数据手册、ST - Link和运行代码相关文档。
- 编写
include/dev/MAX22530.hpp
、src/dev/MAX22530.cpp
和targets/phase3/main.cpp
文件,实现电压读取和UART输出。 - 使用Saleae逻辑分析仪解码波形,确认数据与UART输出匹配。
- 使用可变电源向输入通道施加不同电压,验证输出数据。
- 让高级成员检查Saleae输出和代码,通过后使用DEV1 PVC进行测试,测试通过后进入下一阶段。
阶段4:CAN
- 阅读CAN、CANopen、FUN - E SNAIL、PEAK dongle和示波器相关文档。
- 修改
include/RampupBoard.hpp
、src/RampupBoard.cpp
和targets/phase4/main.cpp
文件,实现数据采集和CAN输出。 - 将FTB和HUDL连接到FUN - E SNAIL,确认数据显示在HUDL上。
- 使用PEAK CAN dongle、Saleae和示波器进行数据验证和调试。
- 向高级固件成员展示代码,获得批准后即完成项目。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】