【STM32单片机数据采集系统概述】
STM32单片机被广泛应用于数据采集系统的设计中,因其高效能、低功耗的特性而受到青睐。本项目旨在基于STM32F103C8T6单片机构建一个功能完备的数据采集系统,该系统具备数据采集、显示、传输、存储和分析的能力。以下是系统的主要功能:
1. **启动与主界面**:
- 系统上电时,4个LED灯闪烁1秒,OLED显示屏显示学号、姓名和杭电LOGO,1秒后进入主界面,显示系统名称和功能菜单。
- 用户可通过K1和K2键上下选择功能,K3键确定进入,K4键用于返回主界面。
2. **系统测试界面**:
- 此界面用于测试系统的各项功能,4个LED灯显示流水灯效果,OLED屏幕以图形方式显示LED状态、按键状态、AD采样数据和MPU6050陀螺仪的原始数据。
- 内容过多时,用户可以通过K1和K2键翻页查看。
3. **陀螺仪姿态解算界面**:
- 解算出的MPU6050姿态角(俯仰角、横滚角和航向角)精确到0.1°,并在OLED屏幕上显示。
- 用户可以利用某一度数控制LED灯亮度(100%-0%可调)。
4. **数据传输界面**:
- 定时向两个串口发送数据,OLED显示发送间隔、数据格式、发送计数和接收字节计数。
- K1键调整发送间隔,K2键切换数据格式,K3键启动或暂停数据上传。
5. **数据接收应用**:
- 设计安卓APP接收蓝牙模块上传的数据,显示LED状态、按键状态、AD采样数据和姿态角度。
- 若无安卓设备,可用自编PC软件通过USB串口接收数据。
6. **硬件系统组成**:
- STM32F103C8T6单片机,8MHz晶振。
- USB转串口芯片PL2303SA,LDO电源AMS1117,LED,按键,可调电阻,MPU-6050陀螺仪,OLED屏幕,HC05蓝牙模块。
7. **软件系统**:
- 使用KEIL(ARM)的MDK作为IDE,HAL+STM32CubeMX替代寄存器操作或标准外设库。
- 软件调试可使用串口ISP下载或调试器下载,常用工具如Flash Loader Demonstrator、mcuisp、FlyMcu和sScOM等。
8. **软件设计**:
- 采用FreeRTOS操作系统,划分多个任务,如数据采集、上传、按键处理和界面显示。
- 数据采集和上传任务负责MPU6050数据采集和上传,按键任务处理按键输入,显示任务更新OLED屏幕。
9. **功能测试与上位机对接**:
- 系统需满足基本功能要求,并完成与PC上位机的连接,确保数据传输的正确性和稳定性。
这个基于STM32的系统设计涵盖了嵌入式系统开发的多个方面,包括硬件设计、软件编程和通信协议的应用,是学习和实践物联网、嵌入式系统开发的一个典型实例。