STM32---GPIO口的简介

  1. GPIO口是STM32芯片最基本的资源,IO口大都具有输入输出功能。而输出功能一般情况分为开漏输出和推挽输出模式。
  2. 哪什么是开漏输出和推挽输出呢?我从网上查了一些资料,简单总结了一下:
  • 开漏输出:只能输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行,适合做电流型的驱动,其吸收电流的能力相对强(一般在20MA以内)
  • 推挽输出:可以输出强高低电平,连接数字器件
  • 推挽输出的最大特点是可以真正能真正的输出高电平和低电平,在两种电平下都具有驱动能力,绝大多数情况下推挽输出就够了 对于开漏输出和推挽输出的区别最普遍的说法就是开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。 

     3. 在STM32中IO口有8种工作模式,分别为:

(1) 浮空输入   

(2)带上拉输入  

(3)带下拉输入 

(4) 模拟输入   

(5)开漏输出

(6)推挽输出

(7)复用功能的推挽输出

(8)复用功能的开漏输出

`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;`

 4.IO引脚速度:

//引脚的三种速度

GPIO_Speed_2MHz

GPIO_Speed_10MHz

GPIO_Speed_50MHz

又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路, 用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪 声控制和降低功耗的目的。)可理解为: 输出驱动电路的带宽:即一个驱动电路可以不失真地通过信号的最 大频率。

5.IO口初始化

STM32 IO口与51系类的IO口不同,每当使用STM32 IO口时一定要初始化,否则无法使用。下面是初始化GPIOB5和GPIOE5的一般步骤,其他IO口的初始化大致是一样的。

GPIO_InitTypeDef GPIO_InitStruct;//定义GPIO结构体变量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE,ENABLE);//使能B口,E口(其他口使能也是一样的)

GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//设置IO模式为推挽输出模式,还可以初始化为其他模式
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;//设置5口(还可以设置为其他口0~15)
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//设置IO口的速度为50MHz
GPIO_Init(GPIOB,&GPIO_InitStruct);//GPIOB`口初始化`

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值