STM32F103C8----GPIO(跟着江科大学STM32)

29 篇文章 1 订阅
6 篇文章 0 订阅

一,GPIO简介

GPIO(General Purpose Input Output)通用输入输出口

可配置为8种输入输出模式

引脚电平:0V~3.3V(0V),部分引脚可容忍5V

输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等

输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等

二,GPIO基本结构

 

 所有的GPIO都是关在APB2总线上。在控制板上有如下针脚

三,GPIO位图 

3.1 保护二极管

先看右边的的两个保护二极管,VDD接3.3V,VSS接地。当右侧IO引脚输入大于3.3V不会对内部电路产生伤害。

 如果右侧IO针脚输入了一个负电压,那么在VSS和IO会形成回路,对内部起到保护作用。

只有当输入电压是0-3.3V,才会进入系统内部 。

3.2 上拉输入

3.3 下拉输入 

 3.4 浮空输入

输入不是高电平就是低电平,当外部IO什么都不接,这个时候处于浮空状态,极易受外界干扰,就不能确定输入的是高电平还是低电平。所以我们在程序中常用上拉或者下拉输入。 

上拉输入:默认输入高电平

下拉输入:默认输入低电平

3.5 肖特基触发器

只在大于上限或者小于下限时做变化,所以简易逻辑如下图 ,

低于上限不一定会发生变化,高于下限也不一定会变化。

有效避免电压波动导致的输入抖动情况。 

 

3.6 推婉输出

推婉输出模式下,输出1,P=MOS导通 ,N-MOS断开,I/O输出高电平

 输出0,P=MOS断开 ,N-MOS导通,I/O输出低电平

 推婉输出有绝对的控制权。也较强输出。

3.7 开漏输出

在开漏输出模式下,P-MOS无效,只有N-MOS工作。

 在多级通讯中,这种模式避免设备之间的相互干扰。

也可用于5V的电平信号输出。当寄存器输出0,是N-MOS导通,输出低电平。 

当输出1时,由外部的上拉电阻拉高电平。实现5V通电。

 3.8 关闭输出

综上如下表 

输出寄存器的值P-MOSN-MOS输出
推婉输出1导通关闭高电平
0关闭导通低电平
开漏输出1无效关闭高阻模式(只有低电平有驱动能力。比如I2C引脚)
0无效导通低电平
关闭输出1无效无效端口关闭,外部信号控制
0无效无效端口关闭,外部信号控制

四,GPIO模式 简易电路图

 通过配置GPIO的端口配置寄存器,端口可以配置成以下8种模式

4.1 程序中代码配置

程序中的GPIO模式配置 枚举如下

typedef enum
{ GPIO_Mode_AIN = 0x0,//模拟输入
  GPIO_Mode_IN_FLOATING = 0x04,//浮空输入
  GPIO_Mode_IPD = 0x28,//下拉输入
  GPIO_Mode_IPU = 0x48,//上拉输入
  GPIO_Mode_Out_OD = 0x14,//开漏输出
  GPIO_Mode_Out_PP = 0x10,//推婉输出
  GPIO_Mode_AF_OD = 0x1C,//复用开漏输出
  GPIO_Mode_AF_PP = 0x18//复用推挽输出

}GPIOMode_TypeDef;

 GPIO的初始化配置代码举例(A0针脚,推婉输出)

	/*GPIO初始化*/
	GPIO_InitTypeDef GPIO_InitStructure;					//定义结构体变量
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;		//GPIO模式,赋值为推挽输出模式
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;				//GPIO引脚,赋值为第0号引脚
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		//GPIO速度,赋值为50MHz
	
	GPIO_Init(GPIOA, &GPIO_InitStructure);					//将赋值后的构体变量传递给GPIO_Init函数
															//函数内部会自动根据结构体的参数配置相应寄存器
															//实现GPIOA的初始化

 4.2 浮空/上拉/下拉输入 电路图

4.3 模拟输入 电路图

4.4 开漏/推挽输出 电路图

4.5 复用开漏/推挽输出 电路图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值