# stm32_code **Repository Path**: lczhuigz/stm32_code ## Basic Information - **Project Name**: stm32_code - **Description**: 一些有关stm32的code - **Primary Language**: C - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-16 - **Last Updated**: 2025-10-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32F103C8T6 HAL LED 示例项目 这是一个基于 STM32F103C8T6 微控制器的 HAL(硬件抽象层)驱动 LED 的示例项目。该项目展示了如何使用 STM32 HAL 库来初始化 GPIO 并控制 LED。 ## 项目结构 - **Core/Inc** - 包含主程序头文件和 HAL 初始化配置。 - **Core/Src** - 包含主程序 (`main.c`)、系统时钟配置、GPIO 初始化、系统中断处理等源文件。 - **Drivers/CMSIS** - ARM CMSIS 核心库文件,用于底层硬件访问和系统初始化。 - **Drivers/STM32F1xx_HAL_Driver** - STM32F1 系列 HAL 驱动代码。 ## 功能概述 该项目的主要功能是通过 HAL 库控制 LED 的亮灭。它实现了以下功能: - 初始化系统时钟 - 初始化 GPIO 引脚用于 LED 控制 - 在主循环中控制 LED 闪烁 ## 代码说明 ### `main.c` 这是主程序文件,包含以下关键函数: - `SystemClock_Config()` - 配置系统时钟 - `MX_GPIO_Init()` - 初始化 LED 所需的 GPIO 引脚 - 主循环中使用 `HAL_GPIO_TogglePin()` 控制 LED 闪烁 ### `gpio.c` 实现了 `MX_GPIO_Init()` 函数,用于配置 LED 所使用的 GPIO 引脚为输出模式。 ### `stm32f1xx_it.c` 包含中断处理函数,例如 SysTick 中断处理。 ## 使用方法 1. 使用 STM32CubeIDE 或其他支持 STM32 的开发工具打开项目。 2. 配置调试器(如 ST-Link)连接至目标板。 3. 编译并下载程序到 STM32F103C8T6 微控制器。 4. 运行程序,观察 LED 是否按预期闪烁。 ## 硬件要求 - STM32F103C8T6 微控制器(如蓝 Pill 开发板) - LED 连接到相应的 GPIO 引脚(根据 `gpio.c` 中的配置) ## 注意事项 - 确保 `main.c` 中的 LED 引脚定义与硬件连接一致。 - 如果使用不同的开发工具链(如 Keil、IAR 或 GCC),请检查编译器配置和启动文件是否匹配。 ## 依赖项 - STM32CubeF1 HAL 库 - CMSIS Core 文件 - STM32F1xx 支持文件 ## 许可证 本项目使用 MIT 许可证。有关详细信息,请参阅仓库中的 LICENSE 文件。 --- 如需进一步了解 STM32 HAL 驱动开发,请参考 [STM32CubeF1 文档](https://www.st.com/resource/en/user_manual/dm00353222.pdf)。