GPIO端口

gpio及通用输入输出端口;负责输入输出功能。按组分配,每组16个。stm32f103zet6 有A~G七组gpio口。注意:有FT标志,标识可容忍5v;

GPIO功能,结构

  1. 基本结构
    在这里插入图片描述
    ①保护二极管
    当引脚输入电压高于VDD时,上面导通;当引脚输入低于Vss时,下面导通。
    ②上拉下拉电阻
    VDD上拉,Vss下拉,如果都不开,为浮空;这种上拉下拉为弱拉,不会影响输入;
    ③施密特触发器
    有一个高阈值和低阈值,高于高阈值时,输出1,低于低阈值时,输出0,高低阈值之间,不变化。
    ④P-MOS管和N-MOS管
    p-mos为积极管,栅极输入1,不导通;输入0导通;
    n-mos为消极管,栅极输入0,不导通;输入1导通。
  2. gpio八种工作模式

输入浮空模式
上拉/下拉电阻为断开状态,施密特触发器打开,输出被禁止。
在这里插入图片描述

输入上拉模式
上拉电阻导通,施密特触发器打开,输出被禁止。
在这里插入图片描述

输入下拉模式
下拉电阻导通,施密特触发器打开,输出被禁止。
在这里插入图片描述

模拟功能
上下拉电阻断开,施密特触发器关闭,双 MOS 管也关闭。
在这里插入图片描述

开漏输出模式
PMOS管栅极始终连接VDD,所以PMOS一直处于阻断状态;NMOS管栅极受输出寄存器控制,当输出1,通过输出控制后为0,则NMOS管不导通,IO口处于高阻态状态(PMOS和NMOS都截断状态);当输出0,通过输出控制后为1,则NMOS管导通,使得IO口连接到Vss,即输出低电平。
在开漏输出模式下,施密特触发器是工作的,所以 IO 口引脚的电平状态会被采集到输入数据寄存器中在这里插入图片描述

推挽输出模式
当输出0,通过输出控制取反为1,则PMOS截断,NMOS导通,IO口接到Vss,则输出0;当输出1,通过输出控制取反为0,则PMOS导通,NMOS截断,IO口连接到VDD,则输出1;
在推挽输出模式下,施密特触发器也是打开的,我们可以读取 IO 口的电平状态。在这里插入图片描述

开漏式复用功能
一个io口可以是通用io口功能,也可以是其它外设的特殊功能引脚;当选择复用功能时,引脚状态由对应外设控制。
开漏式复用功能模式下,施密特触发器也是打开的,我们可以读取 IO 口的电平状
在这里插入图片描述

推挽式复用功能
和开漏式复用功能类似
在这里插入图片描述

GPIO 寄存器

2 个 32 位端口配置寄存器(CRL 和 CRH)
2 个 32 位端口数据寄存器(IDR 和 ODR)
1 个 32 位端口置位/复位寄存器(BSRR)
1 个 16 位端口复位寄存器(BRR)
1 个 32 位端口锁定寄存器 (LCKR)

  1. 端口配置寄存器(GPIOx_CRL 和 GPIOx_CRH)
    GPIOx_CRL
    GPIOx_CRH
  2. 端口输出数据寄存器(GPIOx_ODR)
    该寄存器用于控制 GPIOx 的输出高电平或者低电平;
    在这里插入图片描述
  3. 端口置位/复位寄存器(GPIOx_BSRR)
    该寄存器也用于控制 GPIOx 的输出高电平或者低电平;
    BSRR寄存器改变引脚状态时,不会被中断打断,而ODR有被打断的风险。
    在这里插入图片描述
  4. 端口输入数据寄存器(GPIOx_IDR)
    在这里插入图片描述

GPIO的HAL库函数

void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init); //外设 GPIO 的初始化函数
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); //GPIO 口的写引脚函数,通过 BSRR 寄存器复位或者置位操作
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); //GPIO 口的电平翻转函数,通过 BSRR 寄存器复位或者置位操作
//等等
  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值