首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
STM32F103寄存器方式流水灯实验报告
📅 2026/9/24 7:46:11
✍️ 爱科研究院
👁 阅读 3,247
STM32F103寄存器方式流水灯实验报告实验引脚PA0、PB0、PA5、PC13低电平点亮流水间隔1s包含板载PC13 LED。文章目录STM32F103寄存器方式流水灯实验报告一、实验目的二、实验环境三、硬件引脚与电路说明四、实验原理五、完整实验代码六、实验现象七、实验总结八、常见故障分析九、实验心得一、实验目的熟悉 STM32F103 纯寄存器开发不使用标准库函数直接操作底层寄存器完成GPIO配置。掌握STM32 GPIO时钟使能、端口模式配置、输出电平控制的硬件原理。实现三路LED流水灯PA0、PB0、PA5、PC13依次循环点亮切换间隔1秒。理解 CRL 、 CRH 、 ODR 、 RCC_APB2ENR 寄存器功能理解单片机底层驱动逻辑。二、实验环境硬件STM32F103C8T6最小系统板、ST‑Link下载器、LED灯、220Ω限流电阻、杜邦线、面包板软件Keil MDK‑ARM开发方式寄存器直接操作启动文件 startup_stm32f10x_md.s三、硬件引脚与电路说明引脚分配引脚LED 类型驱动方式备注PB0外接绿灯低电平点亮串联 220Ω 电阻PA5外接蓝灯低电平点亮串联 220Ω 电阻PA0外接红灯低电平点亮串联 220Ω 电阻PC13板载 LED低电平点亮开发板出厂自带无需外接 2.电路特性全部LED为灌电流驱动引脚输出低电平0点亮高电平1熄灭。硬件接线PB0 → 220Ω电阻 → 绿灯正极绿灯负极接GNDPA0 → 220Ω电阻 → 红灯正极红灯负极接GNDPA5 → 220Ω电阻 → 蓝灯正极蓝灯负极接GNDPC13板载LED不需要外接电路ST‑LinkSWDIO、SWCLK、GND、3.3V接开发板四、实验原理核心寄存器物理地址与功能寄存器名称物理地址功能说明RCC_APB2ENR0x40021018APB2 外设时钟使能寄存器开启 GPIOA/GPIOB/GPIOC 时钟GPIOA_CRL0x40010800控制 PA0~PA7 引脚模式PA4 使用该寄存器GPIOB_CRH0x40010C04控制 PB8~PB15 引脚模式PB9 使用该寄存器GPIOC_CRH0x40011004控制 PC8~PC15 引脚模式PC13 使用该寄存器GPIOx_ODR0x4001080C / 0x40010C0C / 0x4001100C端口输出数据寄存器控制引脚高低电平寄存器配置规则 1通用推挽输出模式 CNF00 MODE00 2ODR寄存器写 1 输出高电平LED熄灭写 0 输出低电平LED点亮程序执行流程1使能GPIOA、GPIOB、GPIOC的APB2外设时钟2将PA0、PB0、PA5、PC13配置为通用推挽输出模式3初始化全部引脚输出高电平所有LED熄灭4while死循环依次点亮三个LED软件延时1秒切换状态五、完整实验代码六、实验现象程序下载烧录到开发板后PA0红色LED点亮1秒熄灭PA5蓝色LED点亮1秒熄灭PB0绿色LED点亮1秒熄灭PC13板载LED点亮1秒熄灭三者无限循环轮流闪烁实现流水灯效果PC13板载LED可以用来验证程序是否正常运行。七、实验总结STM32所有外设默认时钟关闭GPIO挂载APB2总线必须开启对应时钟寄存器操作才生效。本实验LED采用灌电流驱动低电平点亮硬件驱动稳定。CRL 控制引脚0‑7 CRH 控制引脚8‑15每个引脚占用4bit配置位。寄存器直接操作可以直观理解硬件底层对比库函数更贴近单片机硬件本质。八、常见故障分析LED全部不亮RCC时钟没有开启GPIO引脚模式配置错误LED正负极接反限流电阻未接入。灯常亮不流水切换延时函数出错ODR寄存器位操作写错。只有板载PC13灯亮外接LED接线错误电阻漏接。九、实验心得通过本次 STM32 寄存器版流水灯实验我第一次完整使用纯寄存器方式配置 GPIO 并实现外设功能彻底摆脱库函数封装真正接触到单片机底层工作原理。实验过程中我深刻理解了 STM32”先开时钟、再配模式、最后控制电平“的标准开发流程。以往使用库函数时对时钟、寄存器配置毫无概念本次手动填写寄存器地址、配置推挽输出、操作 ODR 寄存器控制亮灭让我清楚每一行代码对应的硬件动作。同时我也掌握了 CRL、CRH 高低寄存器的区别低位引脚由 CRL 控制高位引脚由 CRH 控制每 4 位对应一个引脚配置对寄存器的位图结构有了直观认识。调试过程中我遇到过接线错误、灯不亮、常亮不流水等问题通过逐一排查时钟配置、模式寄存器、电平寄存器锻炼了我的硬件排错能力。H 高低寄存器的区别低位引脚由 CRL 控制高位引脚由 CRH 控制每 4 位对应一个引脚配置对寄存器的位图结构有了直观认识。调试过程中我遇到过接线错误、灯不亮、常亮不流水等问题通过逐一排查时钟配置、模式寄存器、电平寄存器锻炼了我的硬件排错能力。本次实验不仅巩固了 GPIO 输出原理也让我体会到嵌入式开发严谨、分层、逐行排查的思维方式为后续中断、定时器、串口等复杂外设的寄存器开发打下了扎实基础。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/24 7:46:10
鼠标每隔几秒自动点击怎么设置?办公重复点击的间隔、坐标与快捷键方法
2026/9/24 7:46:10
RL-赵-(六):随机逼近与随机梯度下降02-1:Stochastic approximation(SA/随机逼近)算法【无需知道目标函数的表达式或它的导数或梯度表达式】
2026/9/24 7:46:10
EmDash 博客模板深度指南:基于 Astro 的全栈 CMS 站点搭建与定制
2026/9/24 8:36:13
设计类与造型类专业|核心区别及基础概念要点梳理
2026/9/24 8:36:13
校园网综合布线系统设计方案:从需求梳理到测试验收的完整指南
2026/9/24 8:36:13
在云栖大会,看见企业级Agent的最终形态
2026/9/24 8:36:13
Xilinx 7系列FPGA LVDS电压配置硬约束解析
2026/9/24 8:36:13
Arduino IDE 2.3.2国内镜像配置三步搞定ESP32库下载失败
2026/9/24 8:31:13
研一新生学习生活全指南 快速适应研究生阶段实用攻略汇总
2026/9/24 0:00:45
百度Comate研发提效实践:架构拆解与落地避坑指南
2026/9/24 0:00:45
柔软的L:汉语语流中被忽视的舌肌张力控制
2026/9/24 0:00:45
1D-CNN时间序列建模实战:从Conv1d原理到工业落地
2026/9/23 19:31:10
深入解析Transformer多头注意力机制与工程优化
2026/9/23 19:31:10
OpenClaw 的 Skills 跑学习任务,模型通道改到 TaoToken 通道行不行?
2026/9/23 19:31:09
ChatGPT报错Oops, an error occurred! 全链路排查指南