原创 STM32单片机IO口输入输出模式

2023-8-24 08:45 555 4 3 分类: 工业电子 文集: 单片机

STM32共有8种类型, 4种输入模式,4种输出模式

一、输入模式

1)浮空输入

      I/O的电平状态是不确定的,完全由外部输入决定,所以在要读取外部信号时通常配置IO口为浮空输入模式。

 

2)上拉/上拉输入模式

    下拉: IO口悬空时,输入电平保持在低电平;IO口输入为高电平时,输入端为高电平

    下拉: IO口悬空时,输入电平保持在高电平;IO口输入为低电平时,输入端为低电平

WK_UPPA0引脚,上拉到3.3V,设置为下拉输入模式,按键按下检测到高电平

KEY2PA13引脚,下拉到GND, 设置为上拉模式,按键按下检测到低电平

 

3)模拟输入模式

I/O端口的模拟信号(电压信号,而非电平信号)直接模拟输入到片上外设模块,比如ADC模块

 

 

二、输出模式

1)推挽输出

在推挽输出模式下,P-MOS管和N-MOS管同时工作,通过对两个MOS管的导通控制,实现控制输出高低电平。大多数IO口都使用推挽输出或者复用推挽输出。

 

高电平时,P-MOS管导通,N-MOS管截止,输出高电平

低电平时,此时P-MOS管截止,N-MOS管导通,输出低电平 0.

 

2)开漏输出

在开漏输出模式下,P-MOS管是不工作的, 只有N-MOS 管工作。即始终输出低电平。

VDD为外部接入的上拉

高电平时,P-MOS管截止,N-MOS管也截止,输出的高电平是外部上拉电源的电平。

低电平时,P-MOS管截止,N-MOS管导通,输出低电平。

开漏输出模式下,必须要有外部上拉电阻,如果没有外部上拉电源,输出的信号只有 低电平,没有高电平。

 

对比:

1) 推挽输出模式可以不需要外部辅助电路就可以直接输出高低电平,所以可以用于直接控制数字电路。

2) 漏输出模式下,通过外部 上来电源实现 高低电平,这个外部电源不需要跟CPU的电平完全一致,比如STM32CPU电源是3.3V,开漏模式下,完全可以使用上拉5V,这样的话,就可以实现 5V的电平 了,对于一些外围器件,如果外围器件的电平与CPU不同,只需要上拉对应的电平电源就可以了。(开漏是用来连接不同电平的器件,匹配电平用的)

3) 推挽输出就是CPU 能够 直接 推动输出 电平。开漏输出就是 断开 漏极,需要外接辅助上拉电阻。

 

3)复用开漏/推挽输出

推挽复用输出模式,与推挽输出模式很是类似。只是输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的。

开漏复用输出模式,与开漏输出模式很是类似。只是输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的

 

软件IIC使用上拉,复用推挽输出,硬件IIC使用复用开漏输出

 

STM32F103 GPIO外设模式配置:

 

GPIO configurations for device peripherals

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条