STM32的GPIO有八种工作模式,分为输入模式和输出模式,以下是详细介绍:
输入模式
- 浮空输入(GPIO_Mode_IN_FLOATING)
• 工作原理:引脚不连接内部上拉或下拉电阻,完全依赖外部电路来确定电平。引脚电平状态不确定,容易受外界干扰。
• 适用场景:适用于连接高阻抗输出的外部设备,如电容式触摸传感器。
- 上拉输入(GPIO_Mode_IPU)
• 工作原理:引脚内部连接上拉电阻,默认电平为高电平。当外部输入低电平时,引脚读取为低电平。
• 适用场景:适用于需要默认高电平的场景,如按键检测。
- 下拉输入(GPIO_Mode_IPD)
• 工作原理:引脚内部连接下拉电阻,默认电平为低电平。当外部输入高电平时,引脚读取为高电平。
• 适用场景:适用于需要默认低电平的场景。
- 模拟输入(GPIO_Mode_AIN)
• 工作原理:引脚配置为模拟信号输入模式,用于采集模拟信号。
• 适用场景:适用于连接传感器等需要模拟信号采集的设备。
输出模式
- 推挽输出(GPIO_Mode_Out_PP)
• 工作原理:高低电平均有较强的驱动能力。数据寄存器为1时输出高电平,为0时输出低电平。
• 适用场景:适用于驱动LED、继电器等需要稳定输出电平的场合。
- 开漏输出(GPIO_Mode_Out_OD)
• 工作原理:只有低电平有驱动能力,高电平时为高阻态。数据寄存器为0时输出低电平。
• 适用场景:适用于I²C总线通信及多设备共享信号线的场合。
- 复用推挽输出(GPIO_Mode_AF_PP)
• 工作原理:引脚配置为复用功能,并以推挽模式工作。
• 适用场景:适用于外设如UART、SPI等需要强驱动的场合。
- 复用开漏输出(GPIO_Mode_AF_OD)
• 工作原理:引脚配置为复用功能,并以开漏模式工作。
• 适用场景:适用于需要上拉电阻的外部设备或通信接口。