GPIO主要功能
● 端口的各个位可以被单独配置
● 可选择的输入模式:浮动输入和带上拉输入
● 可选择的输出模式:推挽式输出和开漏输出
● 数据输入和输出采用独立的寄存器
● 外部中断可以单独使能和关闭
● 输出摆率控制用以减少EMC噪声
● 片上外设的I/O功能复用
● 当作为模拟输入时可以关闭输入施密特触发器来降低功耗
● 在数据输出锁存时支持读-修改-写
● 输入兼容 5V电压
● I/O口工作电压范围为1.6 V 到VDDIOmax
STM8S的IO口相关的寄存器
端口 x 输出数据寄存器 (Px_ODR)
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Px_ODR ODR7 ODR6 ODR5 ODR4 ODR3 ODR2 ODR1 ODR0
读/写 R/w R/w R/w R/w R/w R/w R/w R/w
复位 0 0 0 0 0 0 0 0
Px_ODR中的x代表A、B、C、D、E等端口(下同),这个寄存器所有的位都是一样的,要输出数据的时候把数据往这个寄存器里面放就得了。
一、端口 x 输入寄存器 (Px_IDR)
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Px_IDR IDR7 IDR6 IDR5 IDR4 IDR3 IDR2 IDR1 IDR0
读/写 R R R R R R R R
复位 —— —— —— —— —— —— —— ——
无论是输入还是输出模式,都可以通过这个寄存器读取IO电平,
0=低电平;
1=高电平;
二、端口 x 数据方向 (Px_DDR)
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Px_DDR DDR7 DDR6 DDR5 DDR4 DDR3 DDR2 DDR1 DDR0
读/写 R/W R/W R/W R/W R/W R/W R/W R/W
复位 0 0 0 0 0 0 0 0
IO口方向操作
0=输入模式;
1=输出模式;
三、端口 x 控制寄存器 1 (Px_CR1)
注意: 初始复位时,所有引脚设置为浮空输入。
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Px_CR1 C17 C16 C15 C14 C13 C12 C11 C10
读/写 R/W R/W R/W R/W R/W R/W R/W R/W
复位 0 0 0 0 0 0 0 0
这个寄存器在输入输出不同模式下有不同的功能
在 输入模式时(DDR=0):
0:浮空输入
1::带上拉电阻输入
在 输出模式时(DDR=1):
0:模拟开漏输出(不是真正的开漏输出)
1: 推挽输出, 由CR2相应的位做输出摆率控制
四、端口 x 控制寄存器 2 (Px_CR2)
- Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
PxCR2 C27 C26 C25 C24 C23 C22 C21 C20
读/写 R/W R/W R/W R/W R/W R/W R/W R/W
复位 —— —— —— —— —— —— —— ——
这个寄存器在输入输出不同模式下有不同的功能
在 输入模式时(DDR=0):
0: