STM32之GPIO

GPIO简介

GPIO(General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(输出只有3.3V) 输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等 输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等

GPIO基本结构

GPIO位结构

GPIO模式

一个端口输入时不能输出

一个端口只能有一个输出,可同时有多个输入

操控GPIO的三个步骤

1.利用RCC开启GPIO时钟 (AHB,ABP1,APB2上的设备均属于外设)

2.使用GPIO_Init函数初始化GPIO

3.使用输入或输出函数控制GPIO

GPIO输出

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

//将指定端口设置为高电平

void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

//将指定端口设置为低电平

void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);

//根据BitVal指定端口设置为Bitval

void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

//选择外设,同时对16个端口同时操作

GPIO输入

GPIO_ReadInputDataBit 输入模式下读取指定GPIO口的某一端口值

GPIO_ReadInputData 输入模式下读取指定GPIO口的端口值

GPIO_ReadOutputDataBit 输出模式下读取指定GPIO口的某一端口值(看自己输出了什么) GPIO_ReadOutputDataBit 输出模式下读取指定GPIO口的端口值(看自己输出了什么)

输入时的操作注意:按键消抖(下拉输入)

if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)==RESET)
	{
	  Delay_ms(20);
     while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)==0);
     Delay_ms(20);		
	  //
	  //
	}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值