STM32的GPIO(通用输入输出)有什么用?
STM32的GPIO(通用输入/输出)支持多种工作模式,每种模式都有其特定的应用场景。下面将详细讲解STM32 GPIO的几种主要工作模式及其运行方式:
模拟输入 (GPIO_Mode_AIN): 在此模式下,GPIO引脚关闭了TTL肖特基触发器,不接上、下拉电阻,经由另一线路把电压信号传送到片上外设模块,如传送至ADC模块,由ADC采集电压信号。使用ADC外设时,必须设置为模拟输入模式。浮空输入 (GPIO_Mode_IN_FLOATING): 配置成此模式时,芯片内部既没有接上拉,也没有接下拉电阻,经由TTL肖特基触发器输入。由于其输入阻抗较大,一般把这种模式用于标准的通信协议如I2C、USART的接收端。下拉输入 (GPIO_Mode_IPD): 在此模式下,I/O端口的电平信号通过TTL肖特基触发器后,进入输入数据寄存器。在I/O端口悬空(无信号输入)的情况下,输入端的电平可以保持在低电平;并且在I/O端口输入为高电平时,输入端的电平则为高电平。上拉输入 (GPIO_Mode_IPU): 在此模式下,I/O端口的电平信号通过TTL肖特基触发器后,进入输入数据寄存器。但是在I/O端口悬空(无信号输入)的情况下,输入端的电平可以保持在高电平;并且在I/O端口输入为低电平时,输入端的电平则为低电平。开漏输出 (GPIO_Mode_Out_OD): 在此模式下,上方的P-MOS管完全不工作。控制输出为0(低电平)时,N-MOS管导通,使输出接地。控制输出为1(高电平)时,P-MOS管和N-MOS管都关闭,所以引脚既不输出高电平,也不输出低电平,为高阻态。正常使用时必须外部接上拉电阻。推挽输出 (GPIO_Mode_Out_PP): 在此模式下,输入高电平时,上方的P-MOS导通,下方的N-MOS关闭,对外输出高电平;而输入低电平时,N-MOS管导通,P-MOS关闭,对外输出低电平。推挽输出的低电平为0V,高电平为3.3V。复用开漏输出 (GPIO_Mode_AF_OD): 类似于开漏输出模式,但输出的高低电平的来源不是CPU直接写输出数据寄存器,而是利用片上外设模块的复用功能输出来决定的。复用推挽输出 (GPIO_Mode_AF_PP): 类似于推挽输出模式,但输出的高低电平的来源不是CPU直接写输出数据寄存器,而是利用片上外设模块的复用功能输出来决定的。工控机GPIO口除了输入输出功能还能这样用
GPIO完整写法是GeneralPurposeInputOutput,翻译过来的字面意思就是通用输入输出。工控机GPIO接口通常我们习惯称为I/O口或总线扩展器,就是利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。
GPIO接口除了既可以在工控机数据传输中当输入口和输出口使用,还能在下面这些场景里面起到至关重要的作用,一起来看看吧。
一、GPIO做开关控制
一般用来做LED灯开关控制。通过软件代码,在需要亮灯的时候调用GPIO口拉高的函数,需要熄灯的时候调用GPIO拉低的函数,即可实现控制。
二、GPIO做输入中断信号
用GPIO做中断信号输入需要特别注意一点:如果选择这个中断口来唤醒系统,那一定要对照芯片规格书看清楚,选择的中断口能不能唤醒系统?
对于大部分单片机,几乎每一个中断口都可以唤醒系统,但对于高主频的处理器,如平板电脑,并不是所有的GPIO都可以配置成中断,也不是所有的中断都能唤醒系统。
三、GPIO做按键检测
工控机GPIO接口默认状态是低电平,按键按下后被拉到高电平,此时系统能够检测到中断,判定为按键按下。等到按键释放了,GPIO接口检测到电压回归低电平,就判定为按键松开了。这种做法在单片机上比较常见的做法。
当然,工控机GPIO接口除了简单的输入输出之外,还可以做一些相对复杂的操作,例如模拟I2C总线或SPI数据线、输出PWM波形、ADC电压检测等。这些功能有些可以直接配置成硬件接口,有些也可以通过软件来模拟波形。
相关问答
gpioanalog区别?
gpio释义:abbr.通用输入输出(GeneralPurposeInput/Output)例句:GPIOcontrolisallembeddeddevelopmentbase...
gpio四种输出模式?
STM32的四种输入方式:1、上拉输入(GPIO_Mode_IPU)上拉输入就是信号进入芯片后加了一个上拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平为...
用C语言实现GPIO控制LED模拟打地鼠游戏?
在一个二维数组中,存放标记。设置难度:分:一次只显示一个一次只显示二个一次只显示三个对应产生2*N个随机数,对应(x,y),设置为1,其它空的设置为0.大概的...
mcu的常用外设和功能?
MCU(微控制器单元)的常用外设和功能包括:1.通用输入/输出(GPIO):用于连接和控制外部设备,如按钮、LED等。2.串行通信接口(SPI、I2C、UART):用于与...MCU(...
模拟量数字量的接法?
1。确定一个标准信号(4-20或0-10V)。2。选择一个模拟量输入模块,按模块上的接线方式把线接好,并选择是电流输入还是电压输入。3。这时的标准信号就会通过...
hm2269引脚功能?
HM2269是一款高性能的数字电视调谐器。它的引脚功能如下:1.VDD:芯片供电正极。2.GND:芯片供电地线。3.XIN:输入外部晶振。4.XOUT:输出外部晶振。5.AGC_...
GD32E23D的引脚功能?
GD32E23D是一款32位微控制器,具有丰富的引脚功能。它包含了多个GPIO引脚,可用于输入和输出数字信号。此外,它还具有多个专用功能引脚,如UART、SPI、I2C、PWM...
树莓派python中gpio库有哪些-ZOL问答
不同操作系统安装GPIO的命令是不同的,这里以树莓派的官方操作系统Raspbian为例,说明如何安装GPIO库。Raspbian中安装了两个Python版本,分别是2.7.3和3.2.2。P...
esp8266引脚定义解析?
1、ESP8266引脚定义可以通过GPIO(GeneralPurposeInputOutput)编号或者芯片引脚号(如IO0、IO2)进行定义,其中GPIO编号共有17个,从0~16;2、GP...
3ar2280引脚功能?
3AR2280是一个芯片的型号,根据查询,它具有44个引脚。每个引脚在芯片中有不同的功能。具体功能如下:引脚1和引脚44为电源引脚,用于供电。引脚2到引脚17为GPIO...