GPIO--Part1
GPIO的介绍
GPIO的名词解释
GPIO(general-purpose input/output)
G–>general 通用的
P–>purpose 表示目的用途
I—>input 输入
O–>output 输出
GPIO主要作用
作为单片机与片外外设进行通信交流的唯一通道。
GPIO的引脚命名规则
端口号:用大写字母A-I表示
(每个端口号下最多可以有16个引脚)
那么引脚又是由什么编号表示的呢?
引脚号:用数字0-15来表示
某一端口下的某一引脚的表示方式:P+端口号+引脚号
比如PA1表示在GPIOA中的1号引脚
GPIO的四大功能
1.输入(I/IN)
单片机通过相应的引脚接受外界电平变化从而产生可能的事件。
单片机在此活动中处于被动状态
一般来说输入的模式有4种,上拉输入,下拉输入,浮空输入,模拟输入。
2.输出(O/OUT)
单片机通过相应的引脚输出一定的电平变化从而产生可能的事件。
单片机在此活动中处于主动状态
一般来说输出的模式有两大类,推挽输出,开漏输出。
3.复用(F/AF)
一个引脚上除了可以被当作GPIO使用,还有可能作为其他功能的复用引脚。
比如,图中的PA1还可以当作定时器TIM5的CH2引脚使用
简言之,一个人有多套衣服,什么时候穿哪套由单片机设定
4.模拟(A/AN)
模拟量(Analog Signal): 这是一种连续变化的信号,可以表示为一条连续的曲线,它能够无限接近真实世界的变化。比如声音、光线强度等。
数字量(Digital Signal): 这是一种离散的信号,它由一系列固定数值组成,这些数值通常是二进制形式,即0和1。数字信号易于存储和传输,且抗干扰能力强。
在这种模式下,GPIO引脚可以读取模拟信号,也就是连续变化的电压值,而不是仅仅读取数字信号的0或1。这使得GPIO能够与模拟传感器或执行器等设备进行交互。
位运算
单片机的底层其实就是对不同寄存器进行读写操作,所以理解并且掌握位运算的逻辑就显的额外重要,虽然后面主要还是使用标准库函数作为我们的代码载体,但掌握原理后再使用库函数的时候理解会更精进。
1.& 按位与
全1为1,有0则0
2.| 按位或
有1为1,全0则0
3.~ 按位取反
1与0互换
4.^ 按位异或
相同为0,不同为1
5.<< 左移
x << n (x向左移n)
6.>> 右移
x >> n (x向右移n)
如果我们想使x的第n位为1,则:
x |= (1<<n)
如果我们想使x的第n位为0,则:
x &= ~(1<<n)