littlebot
Published on 2025-04-09 / 4 Visits
0

【源码】基于C++的嵌入式开发学习项目

项目简介

本项目为开发者提供了解嵌入式开发完整生命周期的机会,着重于固件开发。项目划分成四个阶段,逐步引入团队常用的通信协议,从开发板原型设计起步,到实现板间信息通信。开发者能在项目中学习到从C++基础、类级软件设计到硬件调试等成为固件工程师所需的各项技能。

项目的主要特性和功能

  1. 多通信协议学习:包含UART、I2C、SPI和CAN四种常见通信协议,深入理解其在嵌入式系统中的应用。
  2. 驱动开发实践:通过编写TMP117、MAX22530等不同硬件设备的驱动程序,掌握基本和高级的驱动开发技巧。
  3. 硬件调试技能:运用逻辑分析仪、示波器等工具进行波形分析和数据验证,提升硬件调试能力。
  4. 面向对象编程:在项目中实践C++的面向对象编程,提高代码的可维护性和可扩展性。

安装使用步骤

环境准备

确保已安装C++编译器、相关开源库和工具(如Sphinx、Doxygen等)。

代码获取

已下载本项目的源码文件。

各阶段操作

阶段1:UART

  1. 阅读Nucleo、UART相关文档,了解打开串口控制台的方法。
  2. 修改targets/phase1/main.cpp文件,实现从用户读取两个数字并输出它们的和。
  3. 编译并运行代码,测试功能,尝试输入异常数据进行边界测试。
  4. 向指定的高级固件成员展示代码,通过后进入下一阶段。

阶段2:I2C

  1. 阅读FTB、I2C、TMP117数据手册和Saleae逻辑分析仪文档。
  2. 修改targets/phase2/main.cppsrc/dev/TMP117.cpp文件,实现温度读取和UART输出。
  3. 使用Saleae逻辑分析仪解码波形,确认数据与UART输出匹配。
  4. 对TMP芯片进行加热和冷却操作,验证温度数据更新。
  5. 向高级成员展示代码和波形记录,通过后进入下一阶段。

阶段3:SPI

  1. 阅读SPI、MAX22530数据手册、ST - Link和运行代码相关文档。
  2. 编写include/dev/MAX22530.hppsrc/dev/MAX22530.cpptargets/phase3/main.cpp文件,实现电压读取和UART输出。
  3. 使用Saleae逻辑分析仪解码波形,确认数据与UART输出匹配。
  4. 使用可变电源向输入通道施加不同电压,验证输出数据。
  5. 让高级成员检查Saleae输出和代码,通过后使用DEV1 PVC进行测试,测试通过后进入下一阶段。

阶段4:CAN

  1. 阅读CAN、CANopen、FUN - E SNAIL、PEAK dongle和示波器相关文档。
  2. 修改include/RampupBoard.hppsrc/RampupBoard.cpptargets/phase4/main.cpp文件,实现数据采集和CAN输出。
  3. 将FTB和HUDL连接到FUN - E SNAIL,确认数据显示在HUDL上。
  4. 使用PEAK CAN dongle、Saleae和示波器进行数据验证和调试。
  5. 向高级固件成员展示代码,获得批准后即完成项目。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】