news 2026/4/23 13:58:30

【单片机】GPIO位结构图解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【单片机】GPIO位结构图解析

1、片上外设与CPU的关系

CPU是单片机的核心部分,负责处理数据和控制程序流程。片上外设是集成在单片机芯片内部的外部电路,如GPIO、ADC、定时器、串口等。这些外设通过特殊的寄存器与CPU进行通信,CPU通过读写这些寄存器来控制外设的工作状态。

2、GPIO位结构

GPIO位结构包括两个重要部分,一个是输入数据寄存器(IDR),一个输出数据寄存器(ODR)

保镖室(保护二极管)
作用:瞬间高压来了,先把电引走,防止芯片被“电死”。
白话:像门口保安,遇到闹事的大块头直接请出门,不让进屋。

翻译室(TTL 施密特触发器)
作用:把引脚上“模模糊糊”的电压翻译成“0 或 1”的干净数字信号。
白话:把方言转成标准普通话,让后面的大脑听得懂。

录音室(输入寄存器)
作用:把翻译好的 0/1 先“录”下来,CPU 随时来读。
白话:像录音笔,按下按钮就能把声音存起来,想听再播放。

播音室(输出寄存器 + 驱动器)
作用:CPU 想发话时,先把 0/1 写进“小喇叭”,再由驱动器把电流放大,真正送到引脚。
白话:像教室里的广播站,老师先写好稿子,再通过大喇叭让全校听见。

多功能切换开关(复用功能开关)
作用:决定这个引脚今天当“普通 I/O”还是当“特殊外设”(比如串口、PWM)。
白话:像电视遥控器上的“信号源”键,一键切换 HDMI、AV、USB,不同模式干不同活。

3、输入寄存器(IDR)与片上外设的区别

将转换后的数字信号传递到对应的cpu内核中

模拟输入就是原来没有转换的电平信号,都是模拟信号,传递到对应的处理模拟信号的片上外设,复用功能输入主要将数字信号不通过CPU而是直接传递到对应要读取引脚电平的片上外设中,比如串口接收引脚,直接将电平信号传递到串口接收器中,不需要CPU处理。

4、输出寄存器(ODR)与复位功能输出的区别

输出寄存器使用的是CPU处理后的数字信号,通过GPIO输出,然后控制P-MOS和N-MOS来定义引脚的输出高低(数字信号),复用功能输出主要是多次发送数字信号,做个比喻,输出寄存器就好比单发的子弹,而复用功能输出就好比机关枪,可以连续发射。

没有这条“复用功能输出”线,我们就倒退回“软件 bit-bang”石器时代——速度低、抖动大、CPU 被绑、协议难写。

“抢方向盘”是迫不得已且心甘情愿:让专业硬件干专业活,软件只需配置和装数据。

把“弹”和“枪”拆开,就一目了然:
ODR 的“弹”=1 个 bit
你写 GPIOA->ODR = 1 → 上管立刻开,引脚变高;写 0 → 下管开,引脚变低。
写完就完事,不会再自动翻,必须下一次 CPU(或 DMA)再写新值才会变。
→ 所以 ODR 只是单发步枪,每放一枪都要软件重新扣扳机。
复用功能(SPI/PWM/USART)的“弹”=一串 bit+时钟
你把 0x55 放进 SPI_DR → 移位寄存器在 8 个 SCK 周期里自动依次把 0-1-0-1… 送到引脚,完全不用软件再干预。
波特率、相位、占空比都由硬件计数器自动对齐。
→ 这是连发机枪,装一次弹,硬件帮你打完整串。
二者永远互斥
引脚只有一对上下管,MUX 硬开关保证:
要么连 ODR(单发,软件扳机)
要么连外设移位寄存器(连发,硬件扳机)
不能同时连,否则会出现“软件写 1 而硬件移位写 0” → 上下管同时导通短路。

5、USART-TX在哪里?

USART-TX在哪里?
在这张图里,USART-TX 并没有被单独画出来,它藏在 “来自片上外设” 这条总线里——
先找到图最下方的那根横线,旁边写着
“来自片上外设”
它就是 所有片上外设(USART、SPI、TIM…)共用 的“复用功能输出”总线。
这条总线通过一个 “复用功能输出 或关闭” 开关(多路选择器)直接连到 输出驱动器(P-MOS / N-MOS)。
当你把引脚配置成 USART1_TX 时,芯片内部的路由逻辑会把 USART 外设的 TX 移位寄存器输出 接到这条总线上,从而接管输出驱动器;ODR 通路被自动断开。
因此,USART-TX 的物理信号就是沿着
“USART 移位寄存器 → 片上外设总线 → 复用功能输出开关 → 输出驱动器 → 引脚”
这条路径出去的,图上只用一个公共箭头表示,没有单独标“USART-TX”字样。

6、GPIO模式与外设模式

GPIO 模式
你自己当厨师:
点火(写 1)、关火(写 0)、翻锅(读 IDR)——每一步都要 CPU 亲手操作。
外设模式
你按下“电饭煲”按钮:
升温、恒温、跳保温全部由电饭煲内部硬件状态机搞定;
CPU 只负责“放米+按开始”,之后该干嘛干嘛,饭熟硬件自动通知你(中断/DMA)。
引脚上的时钟、数据、PWM 波形,都是“电饭煲”里的电路自动产生,CPU 已经插不上手。

7、一句话总结

把单片机想成一座“智能工厂”:CPU 是厂长,片上外设是各专业车间,GPIO 则是能随时改换的“万能工位”。
厂长(CPU)可以亲手拧螺丝(GPIO 模式:写 ODR、读 IDR),也能按下电钮(配置寄存器)把工位交给自动化流水线(外设复用模式)。
交出去后,子弹变机关枪、单发变连发,厂长只需等中断“叮”一声——饭已煮好、数据已发完、波形已生成。
记住这条铁律:
“谁掌握驱动器,谁决定引脚命运。”
让专业硬件干专业活,软件只需“开局一张配置表”,剩下的时间,CPU 可以去睡觉,也可以去规划下一道工序——这就是现代单片机高效、低功耗、省心的终极秘密。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 23:34:24

基于springboot + vue在线教育学习系统(源码+数据库+文档)

在线教育学习 目录 基于springboot vue在线教育学习系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue在线教育学习系统 一、前言 博主介绍&…

作者头像 李华
网站建设 2026/4/23 12:06:45

Transformers连续批处理:3步让GPU利用率飙升300%的入门指南

Transformers连续批处理:3步让GPU利用率飙升300%的入门指南 【免费下载链接】transformers huggingface/transformers: 是一个基于 Python 的自然语言处理库,它使用了 PostgreSQL 数据库存储数据。适合用于自然语言处理任务的开发和实现,特别…

作者头像 李华
网站建设 2026/4/23 12:38:28

Alita:为移动端量身打造的终极React框架解决方案

Alita:为移动端量身打造的终极React框架解决方案 【免费下载链接】alita A React framework based on umi. 项目地址: https://gitcode.com/gh_mirrors/ali/alita 在当今移动优先的时代,开发高性能的移动应用已成为前端开发者的核心需求。Alita作…

作者头像 李华
网站建设 2026/4/23 12:02:55

解锁群晖照片AI识别:让老设备焕发新活力的完美补丁

解锁群晖照片AI识别:让老设备焕发新活力的完美补丁 【免费下载链接】Synology_Photos_Face_Patch Synology Photos Facial Recognition Patch 项目地址: https://gitcode.com/gh_mirrors/sy/Synology_Photos_Face_Patch 你是否曾经对着DS918等性价比神机叹气…

作者头像 李华
网站建设 2026/4/19 4:01:14

TradingAgents-CN智能交易系统:多智能体协作的AI金融决策引擎

TradingAgents-CN是一套基于多智能体大语言模型构建的中文金融交易决策框架,通过模拟专业投资机构的完整工作流程,为投资者提供从数据收集到交易执行的全链路AI解决方案。该系统将复杂的金融分析任务分解为多个专业智能体角色,实现了人机协同…

作者头像 李华
网站建设 2026/4/23 17:19:31

电商系统中Oracle EXISTS的5个实战应用场景

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个电商数据分析演示项目,包含以下EXISTS应用场景:1. 查找有未支付订单的VIP客户;2. 识别库存中从未被购买的商品;3. 筛选同时购…

作者头像 李华