GPIO实战:寄存器点亮LED


文档摘要

第 3 章 · GPIO 实战:寄存器点亮 LED 章节摘要:这是全书的主场。本章把第 2 章的地基兑现成一件看得见的事:不借助任何库函数,亲手查手册、算位段、写寄存器,让一颗 LED 亮起来;然后让按键把灯关掉,让中断接管输入,最后退后一步看硬件——最小系统怎么搭、上电头几百毫秒芯片在干什么。完成本章,"寄存器点亮第一颗 LED"就从口号变成你的肌肉记忆,后面的定时器、串口、RTOS 都建立在这份手感上。 本章学习目标 读完本章并动手完成后,你应当能够: 脱离库函数,仅凭参考手册把任意 GPIO 引脚配置成输入或输出,并解释 CRL/CRH 位段与引脚号的换算关系; 说出 ODR、BSRR、BRR 三个输出寄存器的分工,并解释为什么中断场景优先用 BSRR;

第 3 章 · GPIO 实战:寄存器点亮 LED

章节摘要:这是全书的主场。本章把第 2 章的地基兑现成一件看得见的事:不借助任何库函数,亲手查手册、算位段、写寄存器,让一颗 LED 亮起来;然后让按键把灯关掉,让中断接管输入,最后退后一步看硬件——最小系统怎么搭、上电头几百毫秒芯片在干什么。完成本章,"寄存器点亮第一颗 LED"就从口号变成你的肌肉记忆,后面的定时器、串口、RTOS 都建立在这份手感上。

本章学习目标

读完本章并动手完成后,你应当能够:

  • 脱离库函数,仅凭参考手册把任意 GPIO 引脚配置成输入或输出,并解释 CRL/CRH 位段与引脚号的换算关系;
  • 说出 ODR、BSRR、BRR 三个输出寄存器的分工,并解释为什么中断场景优先用 BSRR;
  • 用状态机法写出不依赖阻塞延时的按键消抖程序;
  • 从 EXTI 的中断屏蔽寄存器一路配置到 NVIC,让按键按下时触发一次中断服务函数;
  • 用万用表和电阻计算式验证 LED 限流电阻取值,并指出最小系统的六个必备元件。

核心概念速览

GPIO 的世界只有两种角色:输出(芯片说话,引脚电平由寄存器决定)与输入(芯片听话,引脚电平被寄存器采样)。点亮 LED 走输出路径,按键走输入路径,外部中断给输入路径加一条直达 CPU 的快车道。

一句话记住本章:每个引脚的一切行为,都是几个寄存器里几个位的组合。

图 3-1:GPIO 双向通路与中断快车道

图 3-1:GPIO 双向通路与中断快车道

子章节导航

3.1 GPIO 寄存器详解与点亮流程 —— 全书的锚点一节。从时钟使能到位段换算,逐行拆解点亮 PB5 的寄存器代码,并给出"换任意引脚"的通用流程。

3.2 按键输入与外部中断 —— 输入方向。读 IDR、看清按键抖动的真面目,用状态机法消抖,再把 EXTI 与 NVIC 配通,让硬件中断替代轮询。

3.3 最小系统电路与上电时序 —— 退回硬件视角。LED 限流电阻怎么算、最小系统板上有哪几个必备元件、复位电路与 BOOT 引脚如何决定芯片醒来的姿势。

实验准备与安全提示

本章实验的物料清单很短:STM32F103C8T6 最小系统板、ST-Link 烧录器、LED 数只、220 欧与 10 kΩ 电阻若干、轻触开关两只、面包板与杜邦线。安全方面只需记住三条:接线前断电,尤其别在带电状态下调换 LED 极性;LED 必须串限流电阻直连,裸接会在几秒内烧毁引脚;5 V 电源只进板子的 5V 引脚,绝不能碰到 GPIO——3.3 节的电平兼容段落会展开这条规则的完整版。把这三条内化成肌肉记忆,后面的实验就只剩乐趣。

常见疑难先打个预防针

三个本章最常被问的问题,提前给答案。灯接上去不亮但代码"看起来对"——按 3.1 节末尾的排查顺序走:时钟、位段、接法、硬件,顺序千万别乱;为什么我配了输入却不响应——多半是没接上拉电阻或没配 CNF=10,悬空引脚读数是随机的;中断进了一次就再也不进——挂起标志没清,回看 3.2 节的 PR 寄存器写法。这三问覆盖了初学阶段大半的卡壳时刻,遇到时先对照,再动手查。

各节之间的推进逻辑

三节是一个完整的"输出 → 输入 → 底座"闭环。先学输出,因为 LED 的反馈最直观,写对写错一眼可见;再学输入,按键和中断引出"事件驱动"的思维,为第 4 章定时器中断、第 6 章 RTOS 任务铺路;最后看硬件与上电时序,把"软件为什么有时不生效"的答案追到硅片外的电路上。三节合起来,恰好覆盖嵌入式最常见任务的完整链路:感知(按键)→ 决策(CPU)→ 执行(LED)。

前置知识与后续延伸

本章需要第 2 章的全部内容,尤其是 2.1 的寄存器指针写法和 2.3 的时钟门控。手边备好一块 STM32F103 最小系统板、一只 LED、几只电阻和杜邦线,以及参考手册的 GPIO 与 EXTI 两章。往后看:本章的输出寄存器套路在第 4 章被定时器自动化(PWM 硬件替你翻电平);中断服务函数的写作纪律在第 6 章升级为"ISR 里只做最少的事,其余交给任务";3.3 的上电时序则是第 7 章启动流程的物理前传。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U