目录
一,什么是GPIO口
1.GPIO口是通用输入输出端口(General-purpose input/output)的英文缩写,是所有的微控制器必不可少的外设之一,可由STM32直接驱动从而实现与外部设备通信,控制以及采集和捕获的功能。
2.GPIO口可配置多种输入输出模式,如输入浮空,输入上拉,输入下拉,模拟输入,开漏输出,开漏复用功能,推挽式复用功能等。
3.STM32单片机的GPIO被分为很多组,每组最多有16个引脚,不同型号的MCU的GPIO个数是不同的
4.引脚电平:0V~3.3V,部分引脚可容忍5V (带有FT的可以)
二,GPIO内部结构
1,先从IO引脚出发,电压过高时,上方二极管保护,电压过低时下方二极管提供电平
2,往上走,上拉电阻提供高电平,下拉电阻提供低电平
3.模拟输入口(模拟ADC,DAC)
4.TTL肖特基触发器作用:消除刺波;再是读出和复用功能
程序员控制:写入(位设置/清楚寄存器)->读写(输出数据寄存器) 然后可以选择复位功能输出和读写操作,再是推挽,开漏或关闭(工作模式)
三,GPIO口工作模式
模式名称 | 类型 | 模式介绍 |
浮空输入 | 数字输入 | 浮空输入状态下,IO口的电平状态是不确定的完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的 |
上拉输入 | 数字输入 | IO口在无输入的情况下,保持高电平 |
下拉输入 | 数字输入 | IO口在无输入的情况下,保持低电平 |
模拟输入 | 模拟输入 | 输入信号不经施密触发器直接接入,输入信号为模拟量而非数字量,其余输入方式输入数字量 |
开漏输出 | 数字输出 | 只能输出低电平 |
推挽输出 | 数字输出 | 可以输出高低电平 |
复用开漏输出 | 数字输出 | 参考复推挽 |
复用推挽输出 | 数字输出 | 此时IO口受内部外设控制,比如定时器的PWM,比如SPI的MOSI,MOSO等。而普通的推挽输出,则IO受ODR控制 |