stm32-----01初识GPIO

  • GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)   -----使用结构体的参数来初始化GPIO口,一般初始化外设都用这个函数完成
  1. 先定义一个结构体变量
  2. 给结构体赋值
  3. 调用这个函数

 

 

  • GPIO的4个写入函数
  1. GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);-----把指定端口设置成高电平
  2. GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);-----把指定端口设置成低电平
  3. GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);-----第三个参数可以是Bit_RESET(低电平),也可以是Bit_SET(高电平)
  4. GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);-----可以同时对16个端口进行写入操作
  • GPIO的8种工作模式
  1. GPIO_Mode_AIN 模拟输入-----//一般只在使用ADC的时候,把引脚配置成模拟输入。此时GPIO无效,引脚直接接入内部ADC
  2. GPIO_Mode_IN_FLOATING 浮空输入-----//可读取引脚电平,若引脚悬空,则电平不确定,所以使用浮空输入时,端口一定接上一个连续的驱动源,不能出现悬空状态
  3. GPIO_Mode_IPD 下拉输入-----//可读取引脚电平,内部连接下拉电阻,悬空时默认低电平
  4. GPIO_Mode_IPU 上拉输入-----//可读取引脚电平,内部连接上拉电阻,悬空时默认高电平
  5. GPIO_Mode_Out_OD 开漏输出-----//可输出引脚电平,高电平为高阻态,没有驱动能力,低电平接VSS
  6. GPIO_Mode_Out_PP 推挽输出-----//可输出引脚电平,高电平接VDD,低电平接VSS(高低电平都有驱动能力)
  7. GPIO_Mode_AF_OD 复用开漏输出-----//由片上外设控制,高电平为高阻态,低电平接VSS
  8. GPIO_Mode_AF_PP 复用推挽输出-----//由片上外设控制,高电平接VDD,低电平接VSS

下面简单解释一下,以上拉输入为例:

当按下按键时,PA0接地,为低电平,松开时,PA0悬空,就会导致电平不确定,所以我们要把PA0设置成上拉输入模式,即IPU,悬空时默认高电平,这样配置完成后,按下按键为低电平,松手为高电平。

 

posted @   IYU0302  阅读(96)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示