项目简介
本项目基于STM32F103微控制器和MLX90614温度传感器构建了USB测温系统。系统通过USB接口与主机通信并传输温度数据,以裸金属编程风格实现USB和I2C通信,适合想深入学习STM32 USB和I2C外设算法的开发者。
项目的主要特性和功能
- 裸金属编程:采用裸金属编程风格实现USB和I2C,无冗余库,严格遵循USB 2.0和HID 1.11协议,便于开发者学习底层算法。
- 中断驱动:所有工作基于中断构建,主循环仅用于通过SWO接口输出日志,禁用日志后主循环完全空闲。
- I2C错误控制:I2C状态机具备总线错误控制功能,可应对断路、短路等冲突情况。
- 标准HID协议:USB遵循HID协议,HID描述符对应标准的传感器温度计类,无需额外驱动,在设备管理器中可直接识别为温度计。
- 详细日志记录:具备完善的日志功能,每个中断、描述符请求和数据传输都会记录到日志缓冲区,并通过SWO接口以约2 Mbps的速度传输到开发环境。
- 可释放主循环:主循环仅用于SWO数据发送,完成设备开发后禁用调试功能,可释放主循环用于其他任务,无需UART等。
- 丰富注释:项目代码注释丰富,声明常量或定义时会给出相关文档的引用,便于理解USB相关信息。
安装使用步骤
前提条件
用户已下载本项目的源码文件,开发环境为IAR Embedded workbench for ARM 8.50.6。
硬件准备
- 准备STM32F103C8微控制器、MLX90614温度传感器以及必要的连接线。
- 移除开发板上内置的1.5k电阻,并添加可控上拉电路用于调试;完成设备开发后可断开该电路并恢复电阻。
软件操作
- 打开IAR Embedded workbench for ARM 8.50.6开发环境。
- 导入下载好的项目源码文件。
- 编译项目代码。
- 将编译好的程序烧录到STM32F103C8微控制器中。
- 连接好温度传感器和USB接口,系统开始工作,可在设备管理器中查看温度计设备。
- 若需要调试,可通过SWO接口查看日志信息;完成调试后,可禁用日志释放主循环资源。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】