普适的 GPIO 引脚操作方法
GPIO
:General-purpose input/output,通用的输入输出口。
GPIO 模块一般结构
- 有多组
GPIO
,每组有多个GPIO
。 - 使能:电源/时钟
- 模式(mode):引脚可用于
GPIO
或其他功能 - 方向:引脚
Mode
设置为GPIO时,可以继续设置它是输出引脚,还是输入引脚。 - 数值:对于输出引脚,可以设置寄存器让它输出高、低电平。
对于输入引脚,可以读取寄存器得到引脚的当前电平。
GPIO 寄存器操作
GPIO 寄存器的 2 种操作方法:
原则:不能影响到其他位
直接读写:读出、修改对应位、写入
1. 要设置 bit n:
val = data_reg;
val = val | (1<<n);
data_reg = val;
2. 要清楚 bit n:
val = data_reg;
val = val & ~(1 << n)
data_reg = val;
set-and-clear protocol
set_reg
,clr_reg
,data_reg
三个寄存器对应的是同一个物理寄存器;
要设置 bit n
:set_reg = (1 << n);
要清除 bit n
:clr_reg = (1 << n);