GPIO查看源代码讨论查看历史
GPIO(英语:General-purpose input/output),通用型之输入输出的简称,功能类似8051的P0—P3,其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO),如当clk generator, chip select等。
既然一个引脚可以用于输入、输出或其他特殊功能,那么一定有寄存器用来选择这些功能。对于输入,一定可以通过读取某个寄存器来确定引脚电位的高低;对于输出,一定可以通过写入某个寄存器来让这个引脚输出高电位或者低电位;对于其他特殊功能,则有另外的寄存器来控制它们。[1]
优点
GPIO的优点(端口扩展器)低功耗:GPIO具有更低的功率损耗(大约1μA,μC的工作电流则为100μA)。集成IIC从机接口:GPIO内置IIC从机接口,即使在待机模式下也能够全速工作。
小封装:GPIO器件提供最小的封装尺寸 ― 3mm x 3mm QFN!低成本:您不用为没有使用的功能买单。快速上市:不需要编写额外的代码、文档,不需要任何维护工作。
灵活的灯光控制:内置多路高分辨率的PWM输出。可预先确定响应时间:缩短或确定外部事件与中断之间的响应时间。更好的灯光效果:匹配的电流输出确保均匀的显示亮度。布线简单:仅需使用2条就可以组成IIC总线或3条组成SPI总线。
与ARM 的几组GPIO引脚,功能相似,GPxCON 控制引脚功能,GPxDAT用于读写引脚数据。另外,GPxUP用于确定是否使用上拉电阻。 x为A,B,,H/J,GPAUP 没有上拉电阻。
寄存器
1. GPxCON 寄存器
用于配置引脚功能。 Configure
PORT A 与 PORT B~PORT H/J 在功能选择上有所不同,GPACON 中每一位对应一根引脚,共 23 个引脚。当某位被设为 0 时候,相应引脚为 输出引脚。此时我们可以在GPADAT 中相应的写入 1或者 0 来让此引脚输出高电平或者低电平;当某位被设为1时,相应引脚为地址线或用于地址控制,此时GPADATA无用。
一般而言 GPACON 通常被设为 1 ,以便访问外部器件。PORT B~PORT H/J在寄存器操作方面完全相同,GPxCON 中每两位控制一根引脚,00 输入 01 输出10 特殊功能 11 保留不用
2. GPxDAT 寄存器
GPxDAT用于读写引脚,当引脚被设为输入时候,读此寄存器可知道相应引脚的电平状态高还是低,当引脚被设为输出时候,写此寄存器的位,可令引脚输出高电平还是低电平。
3. GPxUP寄存器
GPxUP寄存器某位为1时,相应管脚没有内部上拉电阻;为 0 时候 相应管脚有内部上拉电阻。上拉电阻作用在于,当GPIO 引脚处于第三种状态时候,既不是输出高电平,也不是输出低电平。而是呈现高阻态,相当于没有接芯片。它的电平状态由上下拉电阻决定。
视频
GPIO 相关视频
参考文献
- ↑ GPIO通用输入输出,CSDN博客,2020-05-06