# 嵌入式应用演示 **Repository Path**: tenacity2012/Embedded-Application-Demonstration ## Basic Information - **Project Name**: 嵌入式应用演示 - **Description**: 本项目是 广西财经学院 嵌入式软件开发技术课程的实践案例集合,旨在通过一系列典型应用,展示STM32微控制器在嵌入式系统开发中的多样化功能和应用。项目借助stm32cubemx实现环境及外设配置,涵盖了从基础的GPIO操作到复杂的实时操作系统(FreeRTOS)应用,该项目主要用于嵌入式软件设计课程学习,也适合嵌入式开发初学者和有一定基础的学习者进行学习和参考。 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-08 - **Last Updated**: 2025-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32嵌入式开发案例项目 ## 项目简介 本项目是 广西财经学院 嵌入式软件开发技术课程的实践案例集合,旨在通过一系列典型应用,展示STM32微控制器在嵌入式系统开发中的多样化功能和应用。项目借助stm32cubemx实现环境及外设配置,涵盖了从基础的GPIO操作到复杂的实时操作系统(FreeRTOS)应用,该项目主要用于嵌入式软件设计课程学习,也适合嵌入式开发初学者和有一定基础的学习者进行学习和参考。 ## 项目内容 ### 1. OLED及显示框架应用(基于[MiaoUI](http://github.com/JFeng-Z/MiaoUI) 和 [u8g2](https://github.com/olikraus/u8g2)) - **功能描述**:通过OLED显示屏展示文本、图形等信息,构建了基础的显示框架,方便在后续项目中进行信息展示。 - **技术点**:SPI通信协议、OLED驱动程序开发、树形菜单及图表图形界面绘制。 ### 2. GPIO基础应用 - **简单按键实现**:通过GPIO读取按键状态,实现基本的按键功能。 - **高级按键实现**:长按短按等状态识别等高级功能。 - **IO中断应用**:利用GPIO中断实现按键中断触发,提高系统响应速度。 - **技术点**:GPIO配置、轮询实现方式、中断优先级设置、按键消抖算法。 ### 3. 基于查表方式实现的跑马彩灯 - **功能描述**:通过查表法控制LED灯的亮灭,实现跑马灯效果。 - **技术点**:定时器应用、信号量同步、数组操作。 ### 4. 定时器定时功能与PWM输出 - **定时器功能**:实现精确的定时任务,周期性任务调度。 - **PWM输出**:通过PWM信号控制LED亮度。 - **技术点**:定时器配置、PWM信号生成、占空比调整。 ### 5. 串口通信及标准输出 - **功能描述**:实现STM32与其他设备的串口通信,支持标准输出(如通过串口打印调试信息)。 - **技术点**:USART通信协议、串口初始化、数据收发。 ### 6. 基于HAL思想实现的蜂鸣器应用 - **功能描述**:通过蜂鸣器实现声音提示功能,支持不同时长响铃。 - **技术点**:逻辑、应用与驱动分离实现。 ### 7. I2C器件的传感器应用 - **功能描述**:通过I2C总线连接传感器lm75,读取温度传感器数据。 - **技术点**:I2C通信协议、传感器驱动开发、数据解析。 ### 8. ADC应用 - **功能描述**:通过ADC模块采集模拟信号(电位器分压电压),并进行处理和显示。 - **技术点**:ADC配置、数据采样、数据转换。 ### 9. FreeRTOS应用 - **功能描述**:引入FreeRTOS实时操作系统,实现多任务调度和资源管理。 - **技术点**:任务创建与管理、信号量/互斥量/队列使用、任务优先级调度。 ## 环境依赖 - **硬件环境**:STM32 NUCLEO-F411RE 开发板、OLED显示屏、LED灯、按键、LM75传感器等。 - **软件环境**:STM32CubeMX、Keil MDK、FreeRTOS。 ## 使用方法 1. **硬件连接**:根据项目需求连接开发板、OLED显示屏、按键、传感器等硬件。 2. **软件配置**:使用STM32CubeMX或Keil MDK打开项目工程,配置对应的硬件驱动和系统时钟。 3. **编译运行**:编译项目并烧录到开发板,观察硬件运行效果。 4. **调试优化**:根据实际需求调整代码逻辑,优化系统性能。 ## 项目特点 - **案例丰富**:涵盖多种典型嵌入式开发应用场景,适合学习和实践。 - **可扩展性强**:基于模块化设计,方便后续功能扩展和优化。 ## 贡献指南 欢迎对嵌入式开发感兴趣的朋友参与项目贡献!如果您有任何建议或改进意见,可以通过以下方式联系我们: - 提交Issue:报告问题或提出改进建议。 - 提交Pull Request:贡献代码或文档优化。 --- **版权声明**:本项目代码遵循GPL v3,可在遵循协议的前提下自由使用和修改。