本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。
一、基本分类
IO口分为GPIO(通用输入输出端口)口和专用IO口。其中,GPIO口具有高度的灵活性,可以根据需要配置为不同的工作模式。
二、GPIO的工作模式
1. 浮空输入(Floating Input)
特点:IO口处于高阻态,电平状态不确定,可能是0V、VCC或介于两者之间的某个值。
应用:通常用于按键检测、外部中断信号检测,外部传感器信号输入(产生数字信号的传感器),RX(接收)等,以减少上下拉电阻对结果的影响。
2. 带上拉输入(Pull-up Input)
特点:通过一个上拉电阻将IO口电位拉高至VCC,确保未按下按键或未连接外部设备时,IO口电平为高。
应用:用于提高芯片的抗干扰能力,以及当MCU的IO口作为输入时,确保按键未按下时IO输入电平的状态确定。
3. 带下拉输入(Pull-down Input)
特点:通过一个下拉电阻将IO口电位拉低至GND,确保外部设备未连接或信号未触发时,IO口电平为低。
应用:与带上拉输入相似,但用于需要低电平触发的场景。
4. 模拟输入(Analog Input)
特点:IO口直接接收模拟信号,并将其传递给MCU的AD模块进行模数转换。
应用:用于读取传感器等模拟信号源的数据。
5. 开漏输出(Open-Drain Output)
特点:IO口只能输出低电平或高阻态,无法主动输出高电平。需要外接上拉电阻才能输出高电平。
应用:通常用于多个开关共享同一信号线的场景,如I2C通信总线。
6. 推挽输出(Push-Pull Output)
特点:IO口可以输出高电平或低电平,具有较强的驱动能力。
应用:用于驱动LED灯、继电器等需要大电流的设备。
7. 开漏复用输出(Alternate Function Open-Drain Output)
特点:在开漏输出的基础上,支持功能复用。即同一个IO口可以配置为通用输入输出端口,也可以配置为其他特殊功能端口(如串口、SPI接口等)。
应用:用于需要同时支持多种功能复用的场景。
8. 推挽复用输出(Alternate Function Push-Pull Output)
特点:在推挽输出的基础上,同样支持功能复用。
应用:与开漏复用输出相似,但用于需要推挽输出特性的功能复用场景。
三、IO口的电气特性
1. 驱动能力
IO口的驱动能力有限,具体表现为在输出高电平或低电平时能提供的最大电流。不同MCU的IO口驱动能力可能不同,这取决于内部电路设计和制造工艺。
2. 电平适应性
为了适应不同外设的电平要求,IO口可能需要进行电平转换或提供上拉/下拉电阻。例如,某些外设可能需要5V的电平信号,而MCU的IO口可能只能提供3.3V的电平信号,此时就需要通过电平转换电路来实现信号的匹配。
3. 电气隔离
IO口通常具有一定的电气隔离能力,以防止外部电路的电气干扰对MCU内部电路造成影响。
4. 静电保护
IO口还需具备静电保护能力,以防止静电放电(ESD)对MCU造成损害。
四、IO口的功能复用
许多MCU的IO口支持功能复用,即一个IO口可以根据需要配置为不同的功能。这种功能复用特性使得MCU在设计和应用上更加灵活和方便。例如,某个IO口既可以作为普通的数据输入输出端口,也可以配置为定时器的输出端口、串行通信的发送/接收端口等。
五、IO口的中断功能
部分IO口支持中断功能,当外部信号发生变化时能够触发中断请求,从而允许MCU及时处理外部事件。这种机制可以大大提高MCU的响应速度和效率。对于不支持中断的IO口,通常需要通过软件轮询的方式检测其状态变化。
综上所述,MCU的IO口具有多种模式和功能特性,使得MCU能够与外界进行灵活的信息交互和控制。在实际应用中,需要根据具体的应用场景和需求来选择合适的IO口配置和使用方式。
备注:STM32F10X系列通用GPIO相关资料可自行下载链接资料进行学习,GPIO相关查看第五部分通用和服用功能I/O(GPIO/AFIO),如下图所示:【免费】微控制器+硬件设计+STM32F10x参考手册资源-CSDN文库https://download.csdn.net/download/cgk123/90162184?spm=1001.2014.3001.5501