STM32F407-GPIO笔记

输入:

浮空输入:I/O口无输入时不确定

上拉输入:I/O无输入时输入高电平

  注:上拉电阻的电源电压小于等于单片机的电源电压

下拉输入:I/O无输入时输入低电平

模拟输入:I/O模拟信号直接输入

输出:

开漏输出:控制输出低电平时引脚接地;控制输出高电平时,若上拉,输出上拉电阻的电源电压,若下拉,输出低电平

推挽输出:当IO口为低电平时接地,IO口为高电平时直接输出STM32电源电压,这种方式可以不接上拉电阻。

复用推挽表示引脚的io的操作由相应的功能模块来完成,普通推挽表示你需要通过gpio寄存器来操作

 

GPIO模式:

typedef enum
{ 
  GPIO_Mode_IN   = 0x00, /*!输入模式 */
  GPIO_Mode_OUT  = 0x01, /*!输出模式 */
  GPIO_Mode_AF   = 0x02, /*复用模式 */
  GPIO_Mode_AN   = 0x03  /*!模拟模式 */
}GPIOMode_TypeDef;

输出模式:(输入模式配置毫无意义)

typedef enum
{ 
  GPIO_OType_PP = 0x00, //推挽模式
  GPIO_OType_OD = 0x01  //开漏模式
}GPIOOType_TypeDef;

 输出速度:(输入模式配置毫无意义)

typedef enum
{ 
  GPIO_Low_Speed     = 0x00, /*!< Low speed    */
  GPIO_Medium_Speed  = 0x01, /*!< Medium speed */
  GPIO_Fast_Speed    = 0x02, /*!< Fast speed   */
  GPIO_High_Speed    = 0x03  /*!< High speed   */
}GPIOSpeed_TypeDef;

/* Add legacy definition */
#define  GPIO_Speed_2MHz    GPIO_Low_Speed    
#define  GPIO_Speed_25MHz   GPIO_Medium_Speed 
#define  GPIO_Speed_50MHz   GPIO_Fast_Speed 
#define  GPIO_Speed_100MHz  GPIO_High_Speed  

输入上下拉:(推挽&&输出模式配置无意义)

typedef enum
{ 
  GPIO_PuPd_NOPULL = 0x00, //浮空
  GPIO_PuPd_UP     = 0x01, //上拉
  GPIO_PuPd_DOWN   = 0x02  //下拉
}GPIOPuPd_TypeDef;

整体配置(小灯例子):

  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟

  //GPIOF9,F10初始化设置
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出 
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//上拉  推挽输出意义不大

  GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LoseHu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值