STM32 GPIO

STM32 GPIO

1.GPIO8种状态

输入:
浮空输入
上拉输入
下拉输入
模拟输入
输出:
开漏输出
推挽输出
复用开漏输出
复用推挽输出

浮空输入:引脚状态由已经连接的外部外设决定,呈高阻态,一般实际运用时,引脚不建议悬空,易受干扰。
上拉输入:内部上拉到高电平,将不确定的信号通过一个电阻嵌位在高电平。
下拉输入:内部下拉到GND,将不确定的信号通过一个电阻嵌位在GND。
模拟输入:接受到的是模拟输入,一般用于AD转换。
开漏输出:无法直接输出高电平,需要外接一个上拉电阻才行。输出的电压由上拉电阻连接的电源决定。
推挽输出:可以输出高低电平,连接数字器件。在stm32推挽电路由两个MOS管组成,输出高电平时,P-MOS导通,引脚联通vdd(3.3v),输出低电平时,N-MOS导通,引脚联通GND。

2.GPIO速度

GPIO 引脚速度: GPIO_Speed_2MHz , GPIO_Speed_10MHz, GPIO_Speed_50MHz

typedef enum  
{   
  GPIO_Speed_10MHz = 1,
  GPIO_Speed_2MHz,  
  GPIO_Speed_50MHz  
}GPIOSpeed_TypeDef;

GPIO速度又称输出驱动电路的响应速度,可理解为: 输出驱动电路的带宽:即一个驱动电路可以不失真地通过信号的最大频率。
GPIO的引脚速度跟应用相匹配,速度配置越高,噪声越大,功耗越大。
比如:

① USART串口,若最大波特率只需115.2k,那用2M的速度就够了,既省电也噪声小。

② I2C接口,若使用400k波特率,若想把余量留大些,可以选用10M的GPIO引脚速度。

③ SPI接口,若使用18M或9M波特率,需要选用50M的GPIO的引脚速度。

3.GPIO配置

以小灯为例

GPIO_InitTypeDef  GPIO_InitStructure;//
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);	 //开启对应引脚时钟
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;				 //LED0-->PB.5 //指定引脚
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度50MHz
 GPIO_Init(GPIOB, &GPIO_InitStructure);					 //初始化GPIOB.5
 GPIO_SetBits(GPIOB,GPIO_Pin_5);						 //PB.5输出高电平

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值