stm32 - GPIO

stm32 - GPIO

  • 基本结构
  • 输入
  • 输出

基本结构

所有GPIO都挂在APB2总线上
寄存器:内核通过APB2总线对寄存器进行读写,实现电平的读写
GPIO引脚的每一位对应寄存器中的某一位
GPIO中的驱动器是增加信号驱动能力的,用于增大驱动能力

stm32 - GPIO_第1张图片

stm32 - GPIO_第2张图片
stm32 - GPIO_第3张图片

stm32 - GPIO_第4张图片

输入

读取端口的高低电平或电压,ADC电压采集

输入电路引脚:

保护二极管 VDD/VSS用于电压限伏, 输入电压通过IO引脚超过系统电压则限制

输入的是外部电路的电平信号
施密特触发器对输入电压进行整形:如果输入电压大于某一预知,输出就会瞬间升为高电平;如果电压小于某一阈值,输出就会瞬间降为低电平(就是将模拟信号转化为数字信号)
经过施密特触发器就能直接写入输入数据寄存器

  • 上拉输入(常用)

给输入一个默认输入电平
默认高电平输入
上拉输出模式:寄存器直接读取IO端口电平

IO端口高电平:读取的就是高电平
IO端口低电平:读取的就是低电平
IO端口悬空无信号输入:读取的就是高电平
stm32 - GPIO_第5张图片

  • 下拉输入

给输入一个默认输入电平
默认低电平输入

下拉输出模式:寄存器直接读取IO端口电平

IO端口高电平:读取的就是高电平
IO端口低电平:读取的就是低电平
IO端口悬空无信号输入:读取的就是低电平

stm32 - GPIO_第6张图片

  • 浮空输入

两个都断开就是浮空输入模式
输入不确定

stm32 - GPIO_第7张图片

  • 模拟输入

连接片上外设,一般连接到ADC上 (ADC需要接收模拟量)

  • 复用功能输入
    stm32 - GPIO_第8张图片
    stm32 - GPIO_第9张图片

输出

控制端口输出高低电平,进行驱动负载,模拟通信协议输出时序
对于控制功率比较大的设备,加入驱动电路即可

输出的是微控制器内部的控制信号
stm32 - GPIO_第10张图片

你可能感兴趣的:(嵌入式,stm32)