嵌入式MCU笔记——GPIO

目录

模式

初始化步骤

速度

几个典型的引用


GPIO是通用输入输GPIO出的简写,也就是单片机的一个通用的输入输出接口。他的作用是:控制设备同外设之间的交互

模式

GPIO常见的输入输出模式有8钟模式。输入输出是对半开的。

输入模式有四种:浮空输入、上拉输入、下拉输入、模拟输入

  • 浮空输入的引脚状态是不确定的,在没有外力作用的时候,我们并不知道此时此刻是高电平还是低电平。

  • 上拉输入是使用一个上拉电阻将状态确定为高电平

  • 下拉输入是使用一个上拉电阻将状态确定为低电平

  • 模拟输入是接受一个模拟的信号进入,比如说常见的就是ADC输入和DAC输出这种

输出模式也有四种:开漏输出、开漏复用输出、推挽输出、推挽复用输出

先说开漏:开漏指的是只有低电平驱动的,需要外部引导上来电阻拉起的。也就是说,开漏的能力弱一些,在那些需要传递强信息(表达高电平的唯一性的场景)下,这个东西很好用,说的就是以软件IIC为代表的场景。

推挽则最为常用,他是芯片内部推出去高低电平。驱动能力非常强。

他们的复用版本字如其名:就是同时被用作其他地方上去了,比如说我们的UART, IIC, SPI等等,成为了其他外设的信号线。

特性 推挽输出(Push-Pull) 开漏输出(Open-Drain)
高电平输出 由引脚直接输出(通过晶体管) 通过外部上拉电阻产生(引脚不主动驱动高电平)
低电平输出 引脚直接输出(通过晶体管) 由引脚直接输出(通过晶体管)
适用场景 驱动大负载(如LED、继电器) 多设备共享总线(如I2C、1-Wire)
驱动能力 较强 较弱
外部电路需求 需要外部上拉电阻
电平切换速度 较慢(依赖上拉电阻的值)

初始化步骤

  1. 启动GPIO时钟,需要我们打开GPIO时钟进行GPIO的驱动

  2. 配置好引脚的模式(8大模式的哪一模式)

  3. 配置好输入输出速度(速度配置稍后再谈论)

  4. 配置好上拉下拉(是否以及启用的是上拉电阻还是下拉电阻)

  5. 配置可能的复用功能

速度

特别的,我们的GPIO的速度是出现在不一样的场景的:

  • 低速:也就是说GPIO输出电平的速度低。适用于低频通信和对速度要求不高的控制信号,他的电磁干扰很低

  • 中速:典型的GPIO控制信号

  • 高速:比如说SPI通信

  • 超高速:极快的数据传输

几个典型的引用

  1. 软件IIC,整两个GPIO配置为开漏输出,一个SCL,一个SDA

  2. 基本的外部摁键检测

  3. LED控制GPIO为推挽输出,直接驱动LED的亮灭

  4. UART:配置为RX,TX接口

  5. PWM波形输出

你可能感兴趣的:(嵌入式面试笔记整理,单片机,嵌入式硬件,GPIO)