用STM32F103RCT6的小伙伴,GPIO的个工作模式(四个输入,四个输出)可以参考本篇文章。
文章目录
前言
首先明确 上拉电阻和下拉电阻 的定义和区别:
上拉电阻 :把不确定的信号通过电阻连接到高电平电信号初始化为高电平(默认1)。
下拉电阻:把不确定的信号通过电阻连接到低电平电信号初始化为低电平(默认0)。
一、浮空输入、上拉输入、下拉输入
浮空输入、上拉输入、下拉输入 的性质为“数字输入”
TTL肖特基触发器 是将模拟信号(3.3V,5V,1.9V)转换为(单片机可以识别的)数字信号(0,1),然后到输入数据寄存器。
上拉输入 接 上拉电阻(初始化高电平 默认1),下拉输入 接 下拉电阻(初始化低电平 默认0)。
浮空输入 既不接上拉电阻也不接下拉电阻。
引脚电压不确定,通常用于 IIC、USART。
二、模拟输入
模拟输入 性质为“模拟输入”
GPIO无效,引脚直接接入内部ADC,主要用于AD/DA转换 和 使用ADC专用配置。
三、数字输出<性质>:开漏输出、推挽输出、复用开漏输出、复用推挽输出
1.开漏输出
可输出 引脚电平、高电平为高阻态没有驱动能力、低电平接上VCC。
可以输出 0 和 1;适用于电平不匹配场合;需要 上拉电阻才可以高电平。
控制电路:
经过 “反向器” 起到取反的作用,输入1变成0,0变成1;
US=0 , 截止状态
2. 复用开漏输出
由片上外设控制,高电平为高阻态,低电平接 VSS。
不是通过寄存器 输出数据。通过 复用 功能输出。
片内外设功能 : TX1 ; MOSI ; MISO ; SCK ; SS
3.推挽输出
可输出 引脚电平、高电平接VDD;低电平接 VSS;(高低电平均有驱动能力)
可输出高低电平 0和1; 适用于双向 IO 使用。
通过数据 寄存器 输出 0或1;
控制电路:
若 INT 为 1(高电平);OUT输出高电平,会往上到VDD,输出高电平。(前后一致)
反之。。。。。。。。。。。。。。。。VSS,。。。。。。。。。
4. 复用推挽输出
由片上外设控制,高电平为VDD,低电平接 VSS。
“复用” 的含义就是 GPIO被用于第二功能时的配置情况。(不走数据寄存器的配置)
片内外设功能 IIC 的SCL,SDL
总结
GPIO的个工作模式(四个输入,四个输出)
本文章用图来源于 某鱼江协STM32笔记,以及哞哞哥视频,如有侵犯,私信我,我会及时改正。