首页/新闻资讯/正文详情

【STM32 HAL库】01 - LED闪烁实验(GPIO输出)

发布时间:2026/9/26 3:46:37 来源:云帆数科 栏目:资讯中心
【STM32 HAL库】01 - LED闪烁实验(GPIO输出)
【STM32 HAL库】01 - LED闪烁实验GPIO输出一、实验目的熟悉 STM32CubeMX 图形化配置工具的基本使用流程掌握 GPIO 引脚配置为输出模式的方法理解 HAL 库中 GPIO 相关函数的使用实现 LED 周期性闪烁验证开发板下载、运行链路正常二、硬件平台项目说明开发板野火霸天虎 STM32F407ZG主控芯片STM32F407ZGT6LQFP144LED 引脚PF6红色 LED开漏输出低电平点亮外部晶振HSE 25 MHz系统时钟SYSCLK 168 MHz野火 LED 电路说明霸天虎板上的 LED 采用共阳极接法GPIO 配置为开漏输出Open Drain当引脚输出低电平时 LED 点亮输出高电平时 LED 熄灭。三、软件环境软件版本/说明STM32CubeMXv6.x生成初始化代码Keil MDK-ARMv5编译下载固件包STM32Cube FW_F4下载器ST-LINK / CMSIS-DAP四、CubeMX 配置步骤4.1 选择芯片打开 STM32CubeMX →ACCESS TO MCU SELECTOR→ 搜索STM32F407ZG→ 选择STM32F407ZGTx→Start Project。4.2 配置 RCC外部晶振左侧System Core → RCCHigh Speed Clock (HSE) 选择Crystal/Ceramic Resonator外部晶振4.3 配置时钟树切换到Clock Configuration标签页配置项值HSE 输入频率25 MHzPLL 来源HSE/M (PLLM)25*N (PLLN)336/P (PLLP)2系统时钟来源PLLCLKAHB 预分频/1APB1 预分频/4APB2 预分频/2最终 SYSCLK 168 MHzAPB1 42 MHzAPB2 84 MHz。4.4 配置 LED 引脚 PF6在芯片引脚图上找到PF6左键选择GPIO_Output。点击左侧System Core → GPIO找到 PF6 进行配置配置项值GPIO output levelLow初始低电平LED 亮GPIO modeOutput Open Drain开漏输出GPIO Pull-up/Pull-downNo pull-up and no pull-downMaximum output speedLowUser LabelLED_R⚠️关键GPIO mode 必须选择开漏输出Open Drain不能选推挽Push Pull否则与野火板的硬件电路不匹配。4.5 配置调试接口左侧System Core → SYSDebug 选择Serial WireSWD 调试接口⚠️必须配置如果不选 Serial Wire下载一次后 PA13/PA14 会被复用仿真器将无法再次连接芯片只能用串口 ISP 救砖。4.6 工程设置并生成代码切换到Project Manager标签页配置项值Project Name01_LED_BlinkProject Location自定义工程目录Toolchain / IDEMDK-ARM V5Code Generator标签页勾选✅ Generate peripheral initialization as a pair of .c/.h files per peripheral✅ Copy all used libraries into the project folder点击右上角GENERATE CODE生成代码。五、代码实现生成代码后打开Core/Src/main.c在while(1)循环的USER CODE BEGIN 3区域添加 LED 翻转代码/* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_GPIO_TogglePin(LED_R_GPIO_Port, LED_R_Pin); /* 翻转 LED 电平 */ HAL_Delay(1000); /* 延时 1 秒 */ } /* USER CODE END 3 */核心函数说明函数作用HAL_GPIO_TogglePin(GPIOx, GPIO_Pin)翻转指定 GPIO 引脚的输出电平HAL_Delay(uint32_t Delay)毫秒级延时基于 SysTickLED_R_GPIO_Port和LED_R_Pin宏定义在Core/Inc/main.h中由 CubeMX 根据 User Label 自动生成#define LED_R_Pin GPIO_PIN_6 #define LED_R_GPIO_Port GPIOFGPIO 初始化代码gpio.cCubeMX 自动生成void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct {0}; __HAL_RCC_GPIOF_CLK_ENABLE(); /* 使能 GPIOF 时钟 */ __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_6, GPIO_PIN_RESET); /* 初始低电平 */ GPIO_InitStruct.Pin GPIO_PIN_6; GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_OD; /* 开漏输出 */ GPIO_InitStruct.Pull GPIO_NOPULL; GPIO_InitStruct.Speed GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOF, GPIO_InitStruct); }六、编译与下载编译Keil 中按F7或点击 Build 按钮确认 0 Error(s)。配置下载器魔术棒 →Debug选择ST-Link Debugger或CMSIS-DAP Debugger→ Settings 确认识别到芯片。下载按F8或点击 Load 按钮。验证下载成功后LED_R 以 1 秒为周期闪烁。七、实验现象板载红色 LEDLED_R每秒亮灭一次循环闪烁。八、常见问题问题原因解决方法LED 不亮下载后未自动运行勾选Reset and Run或按复位键LED 微亮但不闪烁GPIO 配成推挽输出改为开漏输出Open Drain编译报错找不到头文件Include 路径未配置检查 Keil 工程 Include Paths仿真器无法连接SYS Debug 未配置 Serial Wire用串口 ISP 重新下载或检查接线延时不准HSE 频率配错确认 HSE 25 MHz野火板不是 8 MHz九、工程目录结构01_LED_Blink/ ├── Core/ │ ├── Inc/ │ │ ├── main.h ← LED_R_Pin 等宏定义 │ │ ├── gpio.h │ │ ├── stm32f4xx_hal_conf.h │ │ └── stm32f4xx_it.h │ └── Src/ │ ├── main.c ← 主循环LED 翻转逻辑 │ ├── gpio.c ← GPIO 初始化CubeMX 生成 │ ├── stm32f4xx_hal_msp.c │ ├── stm32f4xx_it.c ← 中断服务函数 │ └── system_stm32f4xx.c ← 系统时钟 ├── Drivers/ ← STM32 HAL 库源码 ├── MDK-ARM/ ← Keil 工程文件 └── 01_LED_Blink.ioc ← CubeMX 配置文件提示修改代码时务必写在/* USER CODE BEGIN */和/* USER CODE END */之间否则重新用 CubeMX 生成代码时会被覆盖。

相关推荐

免费免注册体验 Claude Code 和 Skills:TaoToken 统一 Key 配置与验证指南
免费免注册体验 Claude Code 和 Skills:TaoToken 统一 Key 配置与验证指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 3:46:37

LangChain4j+LangGraph4j低代码智能体工作流实战架构
LangChain4j+LangGraph4j低代码智能体工作流实战架构

1. 这不是又一个“AI平台”PPT,而是一套能跑通真实业务闭环的低代码智能体工作流骨架最近三个月,我带着团队在三个不同行业的客户现场落地了四套基于 LangChain4j LangGraph4j 的智能体系统——从制造业设备报修工单自动分派,到金融信贷材料… · 2026/9/26 3:46:37

支付逻辑漏洞排查指南:8类常见漏洞与修复方案
支付逻辑漏洞排查指南:8类常见漏洞与修复方案

做了这么多年支付风控和渗透测试,我最深的体会是:真正让企业一夜之间损失惨重的,往往不是SQL注入、不是RCE,而是那些看起来人畜无害,打起来刀刀见血的支付逻辑漏洞。它不依赖你用了什么框架、什么中间件,只… · 2026/9/26 3:46:37

从吐槽到规则:Karpathy 如何给 AI 编程立规矩,TaoToken 统一 Key 接入 Claude Code 的 CLAUDE.md 配置骨架
从吐槽到规则:Karpathy 如何给 AI 编程立规矩,TaoToken 统一 Key 接入 Claude Code 的 CLAUDE.md 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 19:36:10

AI Weekly | 2026年4月第二周 · GitHub热门项目与AI发展趋势深度解析:用TaoToken统一Key跑通MCP工具链
AI Weekly | 2026年4月第二周 · GitHub热门项目与AI发展趋势深度解析:用TaoToken统一Key跑通MCP工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 19:36:10

ArcPy高级开发教程—要素操作:用TaoToken统一Key打通AI辅助空间分析工作流
ArcPy高级开发教程—要素操作:用TaoToken统一Key打通AI辅助空间分析工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 19:36:04

资金部绩效考核关键指标与绩效优化策略
资金部绩效考核关键指标与绩效优化策略

在现代企业管理中,资金部承担着确保公司资金高效运作的重任。资金的筹集、使用与流动性管理直接影响到企业的财务健康与长期发展。因此,如何通过科学的绩效评估来提升资金部的工作效率和决策准确性,成为了管理层关注的重点。 本文将探讨如何通过关键绩效指标(KPI)评估资金… · 2026/9/26 19:35:58

video-use:用Claude Code+ffmpeg+Remotion+Manim打造可编程视频处理流水线
video-use:用Claude Code+ffmpeg+Remotion+Manim打造可编程视频处理流水线

1. 项目缘起:为什么我要把视频处理这件事“工具化”做内容这行时间长了,绕不开一个现实:视频处理是个体力活。剪辑、转码、加字幕、批量压缩、生成演示动画,每一步单拎出来都不难,但一旦量上来,纯靠手点软件… · 2026/9/26 19:35:52

战略规划主管绩效考核量表设计与战略执行力评估实践
战略规划主管绩效考核量表设计与战略执行力评估实践

在现代企业管理中,绩效考核是评估员工工作表现的重要手段。通过科学、系统的KPI(关键绩效指标)设置,企业不仅能够对员工的工作质量、效率进行量化评估,还能确保业务目标的顺利推进。本文将深入分析一份多维度、细化的绩效考核表,重点关注战略规划、行业调研、经济分析等领… · 2026/9/26 19:35:52

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码