普适的GPIO引脚操作方法

本文详细介绍了GPIO(通用输入输出)的基本概念与操作方法,包括GPIO模块结构、寄存器配置、防抖动、中断及唤醒功能。适用于嵌入式系统开发人员了解和掌握GPIO的使用技巧。

1 普适的GPIO引脚操作方法

GPIO:General-purpose input/output,通用的输入输出口。

1.1 GPIO模块一般结构

有多组 GPIO,每组有多个 GPIO。

使能: 电源/时钟。

模式(Mode): 引脚可用于 GPIO 或其他功能。

方向: 引脚 Mode 设置为 GPIO 时,可以继续设置它是输出引脚,还是输入引脚。

数值: 对于输出引脚,可以设置寄存器让它输出高、低电平;对于输入引脚,可以读取寄存器得到引脚的当前电平。

1.2 GPIO相关寄存器

使能:

  • 芯片手册一般有相关章节,用来介绍:power/clock。
  • 可以设置对应寄存器使能某个 GPIO 模块(Module)。
  • 有些芯片的 GPIO 是没有使能开关的,即它总是使能的。

模式(Mode):

  • 一个引脚可以用于 GPIO、串口、USB 或其他功能。
  • 有对应的寄存器来选择引脚的功能。

方向:

  • 对于已经设置为 GPIO 功能的引脚,有方向寄存器用来设置它的方向:输出、输入。

数值:

  • 对于已经设置为 GPIO 功能的引脚,有数据寄存器用来写、读引脚电平状态。

1.3 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)。

1.4 GPIO的其他功能:防抖动、中断、唤醒

后续介绍。


参考资料:

  1. 韦东山全系列视频第1季快速入门
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值