GPIO引脚操作方法
普适的GPIO引脚操作方法
GPIO(General-Purpose IO Ports),即通用IO接口。GPIO的使用较为简单,主要分为输入和输出两种功能,用于实现一些简单设备的控制。在作为输入型GPIO的情况下,我们可以将该IO连接外部按键或者传感器,用于检测外部状态。当作为输出时,我们可以通过输出高低电平来控制外部设备的运转。
GPIO模块一般结构
a. 有多组GPIO,每组有多个GPIO
b. 使能:电源/时钟
c. 模式(Mode):引脚可用于GPIO或其他功能
d. 方向:引脚Mode设置为GPIO时,可以继续设置它是输出引脚,还是输入引脚
e. 数值:对于输出引脚,可以设置寄存器让它输出高、低电平, 对于输入引脚,可以读取寄存器得到引脚的当前电平。
GPIO寄存器操作
a. 芯片手册一般有相关章节,用来介绍:power/clock可以设置对应寄存器使能某个GPIO模块(Module)有些芯片的GPIO是没有使能开关的,即它总是使能的
b. 一个引脚可以用于GPIO、串口、USB或其他功能,有对应的寄存器来选择引脚的功能
c. 对于已经设置为GPIO功能的引脚,有方向寄存器用来设置它的方向:输出、输入
d. 对于已经设置为GPIO功能的引脚,有数据寄存器用来写、读引脚电平状态
GPIO寄存器的2种操作方法:
原则:不能影响到其他位
1) 直接读写:读出、修改对应位、写入
要设置bit n:
val = data_reg;
val = val | (1<<n);
data_reg = val;
要清除bit n:
val = data_reg;
val = val & ~(1<<n);
data_reg = val;
2) set-and-clear protocol:
set_reg, clr_reg, data_reg 三个寄存器对应的是同一个物理寄存器,
要设置bit n:set_reg = (1<<n);
要清除bit n:clr_reg = (1<<n);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)