输入模式
模拟输入、浮空输入、上拉输入、下拉输入
模拟输入:I/O端口的模拟信号(电压信号,并非电平信号)直接模拟输入到片上外设模块(比如ADC模块)。
浮空输入:I/O端口的电平信号直接输入数据寄存器。
上拉输入: I/O端口的电平信号直接进入输入数据寄存器,但是在I/O端口悬空(无信号输入)的情况下,输入端的电平保持在高电平。
下拉输入: I/O端口的电平信号直接进入输入数据寄存器,但是在I/O端口悬空(无信号输入)的情况下,输入端的电平保持在低电平。
例如STM32F103的固件库中的模式选择:
typedef enum
{ GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,
GPIO_Mode_Out_OD = 0x14,
GPIO_Mode_Out_PP = 0x10,
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
讲解:
- GPIO_Mode_AIN:模拟输入模式,用于输入模拟信号。
- GPIO_Mode_IN_FLOATING: 浮空输入模式,用于输入数字信号,不进行上拉或下拉处理。 一般不使用(比较危险)。
- GPIO_Mode_IPD: 带下拉电阻的输入模式,用于输入数字信号,进行上拉电阻处理。 在IO口悬空时输入端保持低电平状态。
- GPIO_Mode_IPU: 带上拉电阻的输入模式,用于输入数字信号,进行下拉电阻处理。 在IO口悬空时输入端保持在高电平状态。
GPIO输出模式
推挽输出、开漏输出、复用推挽输出、复用开漏输出。
推挽输出(常用):使用P-MOS、N-MOS管,当输出高电平时P-MOS处于开启状态,N-MOS关闭(同一时刻只有一个MOS管导通);输出低电平时P-MOS关闭,N-MOS处于导通状态。注意:输出高电平为VDD值。
开漏输出:只使用N-MOS管,输出高电平时N-MOS关闭,此时输出电平为端口电压值(I/O端口的上拉或者下拉决定);输出低电平时N-MOS导通,输出低电平(接地)。
复用推挽输出:输出高低电平的值由片上外设决定。
复用开漏输出:输出高低电平的值由片上外设决定。
例如:
- GPIO_Mode_Out_OD: 开漏输出模式,用于输出数字信号,开漏输出相当于输出信号时接地,而非控制电压。
- GPIO_Mode_Out_PP: 推挽输出模式,用于输出数字信号,输出信号电平由控制电压和接地电平共同决定。 该模式比较常用, 推挽输出模式下(P-MOS管+N-MOS管),通过设置位设置/清除寄存器或者输出数据寄存器的值,途经P-MOS管和N-MOS管,最终输出到I/O端口。同时,I/O端口的电平也可以通过输入电路进行读取;此时I/O端口的电平一定是输出的电平。
- GPIO_Mode_AF_OD: 开漏复用输出模式,用于复用GPIO,可以将GPIO和外设输出信号共享一个IO口,使CPU可以控制不同的引脚发出相同的信号。
- GPIO_Mode_AF_PP: 推挽复用输出模式,也用于复用GPIO。和GPIO_Mode_AF_OD相比,不同的是输出信号通过推挽电路发送。常用于实现不同的外设共享一个IO口,并进行数字信号的输入输出。
上下拉电阻
上拉电阻
将一个不确定的电平(高或者低电平)通过一个电阻和电源VCC相连,固定在高电平。
推荐视频:【上拉电阻的通俗解释,你真正知道吗?】 https://www.bilibili.com/video/BV1W34y1579U/?share_source=copy_web&vd_source=2cb045100a1d2262e05f55bab3533d18
下拉电阻
将一个不确定的电平(高或者低电平)通过一个电阻和电源GND相连,固定在低电平。
推荐视频:【下拉电阻的通俗解释,你真正知道吗?】 https://www.bilibili.com/video/BV1ZU4y1Q7eo/?share_source=copy_web&vd_source=2cb045100a1d2262e05f55bab3533d18文章来源:https://www.toymoban.com/news/detail-449005.html
参考文章:https://blog.csdn.net/zhuguanlin121/article/details/118489092?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167705219216800222884641%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=167705219216800222884641&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogsobaiduend~default-2-118489092-null-null.blog_rank_default&utm_term=gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86&spm=1018.2226.3001.4450文章来源地址https://www.toymoban.com/news/detail-449005.html
到了这里,关于单片机输入输出模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!