STM学习- GPIO工作原理

STM学习- GPIO工作原理

Sat 0203:0006:0009:0012:0003:0006:0009:00Jan 03已完成 时间安排

主要内容:

  • GPIO工作方式 输出输入
  • GPIO对应操作寄存器配置说明
  • GPIO引脚说明
GPIO工作原理GPIO工作方式输入模式浮空输入上拉输入下拉输入模拟输入输出模式开漏输出开漏复用输出推挽输出推挽复用输出GPIO操作寄存器说明

GPIO工作方式- 输入工作模式:

- GPIO_Mode_IN_FLOATING 浮空输入(可以做KEY识别
- GPIO_Mode_IPU 上拉输入:IO内部上拉电阻输入
- GPIO_Mode_IPD 下拉输入: IO内部下拉电阻输入
- GPIO_Mode_AIN 模拟输入: 应用ADC模拟输入,或者低功耗下省电

- GPIO_Mode_IN_FLOATING 浮空输入(可以做KEY识别
浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,IO的电平状 态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的
在这里插入图片描述

- GPIO_Mode_IPU 上拉输入:IO内部上拉电阻输入
在这里插入图片描述

- GPIO_Mode_IPD 下拉输入: IO内部下拉电阻输入
在这里插入图片描述
- GPIO_Mode_AIN 模拟输入: 应用ADC模拟输入,或者低功耗下省电
在这里插入图片描述

GPIO工作方式- 输出工作模式:

- GGPIO_Mode_Out_OD 开漏输出:
- GPIO_Mode_AF_OD 复用开漏输出
- GPIO_Mode_Out_PP 推挽输出
- GPIO_Mode_AF_PP 复用推挽输出

- GGPIO_Mode_Out_OD 开漏输出:
开漏,就等于输出口接了个NPN三极管,并且只接了e,b. c极 是开路的,你可以接一个电阻到3.3V,也可以接一个电阻到5V,这样,在输出1的时候,就可以是5V电压,也可以是3.3V电压了.但是不接电阻上拉的时候,这个输出高就不能实现了. 推挽,就是有推有拉,任何时候IO口的电平都是确定的,不需要外接上拉或者下拉电阻.
在这里插入图片描述
- GPIO_Mode_AF_OD 复用开漏输出
复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
在这里插入图片描述
- GPIO_Mode_Out_PP 推挽输出
推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
在这里插入图片描述
- GPIO_Mode_AF_PP 复用推挽输出
复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
在这里插入图片描述

备注:

- 推挽输出:
可以输出强高低电平,连接数字器件

- 开漏输出:
只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)***

  • 备注

在这里插入图片描述

GPIO寄存器配置说明:

每组GPIO端口的寄存器组成:

  • 两个32位配置寄存器(GPIOx_CRL ,GPIOx_CRH) ,
    -GPIOx_CRL :端口配置低寄存器
    在这里插入图片描述
    在这里插入图片描述

-GPIOx_CRH:端口配置高寄存器
在这里插入图片描述

  • 两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR),
    -GPIOx_IDR:端口输入寄存器
    在这里插入图片描述

-GPIOx_ODR:端口输出寄存器
在这里插入图片描述
在这里插入图片描述

  • 一个32位置位/ 复位寄存器(GPIOx_BSRR),
    -GPIOx_BSRR:端口位设置/清除寄存器
GPIO_SetBits(GPIOE,GPIO_Pin_5):GPIO->BSRR=GPIOE_Pin_5;
//GPIOE_Pin_5 输出低电平;

在这里插入图片描述

  • 一个16位复位寄存器(GPIOx_BRR),
    – GPIOx_BRR :端口位清除寄存器
GPIO_SetBitc(GPIOB,GPIO_Pin_5):GPIO->BRR=GPIOB_Pin_5;
//GPIOB_Pin_5 输出高电平;

在这里插入图片描述

  • 一个32位锁定寄存器(GPIOx_LCKR)。
    – GPIOx_LCKR:端口配置锁存寄存器

在这里插入图片描述
注释:FT管脚支持5V电平输入 (未标注FT管脚正常电压输入0~3.3V电平)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值