# Course_Design **Repository Path**: flypigbaby/Course_Design ## Basic Information - **Project Name**: Course_Design - **Description**: 22级嵌入式系统课程设计 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-31 - **Last Updated**: 2025-09-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ```markdown # 课程设计项目 这是一个基于 STM32F103C8Tx 微控制器的嵌入式系统项目,主要用于传感器数据采集、显示和通信。该项目使用 STM32 HAL 库和 u8g2 图形库来驱动 OLED 显示屏,并通过 UART 实现串口通信。 ## 项目功能 - **传感器数据采集**:支持 DHT11 温湿度传感器和 ADC 光照传感器的数据采集。 - **实时时钟 (RTC)**:提供时间与日期功能。 - **OLED 显示**:使用 u8g2 图形库驱动 OLED 屏幕,显示传感器数据和系统信息。 - **串口通信**:通过 UART 发送和接收数据,支持格式化输出和缓冲接收。 - **按键中断**:支持外部按键中断处理,用于用户交互。 - **系统时钟配置**:提供系统时钟初始化和错误处理功能。 ## 硬件平台 - 微控制器:STM32F103C8Tx - 外设: - DHT11 温湿度传感器 - ADC 光照传感器 - OLED 显示屏(通过 I2C 接口) - UART 串口通信 - 按键和 LED ## 软件架构 ### 核心组件 - **Core/Src/main.c**:主程序入口,包含系统初始化、主循环和中断处理。 - **Core/Src/gpio.c**:GPIO 引脚初始化。 - **Core/Src/usart.c**:UART 初始化和通信功能。 - **Core/Src/rtc.c**:RTC 实时时钟初始化。 - **Core/Src/i2c.c**:I2C 总线初始化,用于 OLED 显示。 - **Core/Src/adc.c**:ADC 初始化,用于光照传感器数据采集。 - **Core/Src/dma.c**:DMA 初始化,用于高效数据传输。 ### 驱动模块 - **Drivers/BSP/Src/dht11.c**:DHT11 温湿度传感器驱动。 - **Drivers/BSP/Src/light_adc.c**:光照传感器 ADC 采集函数。 - **Drivers/BSP/Src/oled.c**:OLED 显示驱动。 - **Drivers/BSP/Src/u8g2_stm32_hw_iic.c**:u8g2 图形库的 I2C 硬件接口实现。 - **Drivers/BSP/Src/uart.c**:UART 串口通信函数,包括格式化发送和接收缓冲。 ### 中断处理 - **Core/Src/stm32f1xx_it.c**:中断服务例程,包括 RTC、UART、按键中断等。 ### 图形界面 - **Third_party/csrc/mui.c / mui.h**:菜单界面库,用于构建 OLED 上的用户交互界面。 - **Third_party/csrc/u8g2.c / u8g2.h**:u8g2 图形库,提供 OLED 绘图功能。 ## 使用说明 ### 编译与烧录 1. 使用 STM32CubeIDE 或 Keil MDK 打开项目。 2. 编译项目。 3. 使用调试器或串口烧录工具将程序烧录到 STM32F103C8Tx 微控制器中。 ### 运行功能 - 上电后,系统初始化所有外设。 - OLED 显示温湿度、光照强度、时间等信息。 - 通过串口可发送和接收数据。 - 按键可用于切换 OLED 显示界面或触发特定功能。 ## 开发与调试 - **调试工具**:支持 STM32CubeIDE、Keil、OpenOCD 等调试工具。 - **日志输出**:通过串口输出调试信息。 - **中断调试**:可在 `stm32f1xx_it.c` 中设置断点进行中断调试。 ## 依赖库 - **STM32 HAL 库**:用于外设驱动。 - **u8g2 图形库**:用于 OLED 显示。 - **mui 菜单库**:用于构建用户界面。 ## 许可证 本项目采用 MIT 许可证,请参阅 LICENSE 文件了解详细信息。 ## 贡献 欢迎提交 Pull Request 或提出 Issue。请遵循项目代码风格和提交规范。 ## 联系方式 如有问题,请联系项目维护者。 ```