STM32开发——GPIO

GPIO简介

GPIO(英语:General-purposeinput/output),通用型之输入输出的简称,其接脚可以 供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO) 或通用输入与输出(GPIO)

GPIO8 种工作模式

GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING 浮空输入
GPIO_Mode_IPD 下拉输入
GPIO_Mode_IPU 上拉输入
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_Out_PP 推挽输出
GPIO_Mode_AF_OD 复用开漏输出
GPIO_Mode_AF_PP 复用推挽输出

工作模式的介绍

模拟输入:是用来接受模拟信号输入(主要是用作ADC或者看门狗)

浮空输入:当GPIO采用浮空输入模式时,STM32的引脚状态是不确定的,此时STM32得到的电平状态完全取决于GPIO外部的电平状态,所以说在GPIO外部的引脚悬空时,读取该端口的电平状态是个不确定的值。

上拉、下拉输入:在GPIO外部连接的电路未工作时,STM32读取的GPIO状态是不确定的,所以可以采用带上拉或者下拉输入的模式先给MCU一个确定的状态,当外部电路电平状态发生变化时,易于MCU的判断。这样可以增强MCU的抗干扰能力

开漏输出:如果外部不接上拉电阻,只能输出低电平,所以要想输出高电平必须要外接上拉电阻。主要好处是可以用来匹配不同的电平信号以实现不同的系统间的通信。

推挽输出;电平在0v - 3.3v 之间输出

复用模式:类似于第二功能(这里还没用到暂时不写)

使用方法

初始化与反初始化:

//初始化引脚 
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init); 
//重置引脚 
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);

基础操作:

//读取电平状态
 GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); 
//设置引脚状态 
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); 
//转换引脚状态 
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); 
//锁定引脚状态 
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);

GPIO_PIN_RESET 代表 0
GPIO_PIN_SET 代表 1

GPIO_TypeDef 是操作一个GPIO块的句柄
GPIO_Pin 是这个块中的某个引脚

其实跟51单片机也麻烦不了太多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值