【GPIO配置】

GPIO 四种输入模式

  1. 浮空输入 GPIO_Mode_IN_FLOATING
  2. 上拉输入 GPIO_Mode_IPU
  3. 下拉输入 GPIO_Mode_IPD
  4. 模拟输入 GPIO_Mode_AIN

GPIO四种输出模式

  1. 开漏输出 GPIO_MODE_OUTPUT_OD
  2. 推挽输出 GPIO_MODE_OUTPUT_PP
  3. 开漏复用输出 GPIO_MODE_AF_OD
  4. 推挽复用输出 GPIO_MODE_AF_PP

基于stm32F4xx的GPIO配置

  1. 时钟使能 (AHB1总线控制GPIO时钟)(F4系列特性)
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx, ENABLE)
  2. 初始化结构体设置工作模式
    示例
	__HAL_RCC_GPIOF_CLK_ENABLE()
    GPIO_InitTypeDef gpio_init_struct;
  
    gpio_init_struct.Pin = LED0_GPIO_PIN;                   /* LED0ӽޅ */
    gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;            /* ΆάˤԶ */
    gpio_init_struct.Pull = GPIO_PULLUP;                    /* ʏ- */
    gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;          /* ٟ̙ */
    HAL_GPIO_Init(LED0_GPIO_PORT, &gpio_init_struct);   

结构体定义:

typedef struct
{
  uint32_t Pin;       /*!< Specifies the GPIO pins to be configured.
                           This parameter can be any value of @ref GPIO_pins_define */

  uint32_t Mode;      /*!< Specifies the operating mode for the selected pins.
                           This parameter can be a value of @ref GPIO_mode_define */

  uint32_t Pull;      /*!< Specifies the Pull-up or Pull-Down activation for the selected pins.
                           This parameter can be a value of @ref GPIO_pull_define */

  uint32_t Speed;     /*!< Specifies the speed for the selected pins.
                           This parameter can be a value of @ref GPIO_speed_define */

  uint32_t Alternate;  /*!< Peripheral to be connected to the selected pins. 
                            This parameter can be a value of @ref GPIO_Alternate_function_selection */
}GPIO_InitTypeDef;

(1) 作为普通GPIO输入:
根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。
(2) 作为普通GPIO输出:
根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。
(3) 作为普通模拟输入:
配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。(A/D模拟输入)
(4) 作为内置外设的输入:
根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。
(5)作为内置外设的输出:
根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。
原文链接

1、普通推挽输出(GPIO_Mode_Out_PP):
使用场合: 一般用在0V和3.3V的场合。线路经过两个P_MOS 和N_MOS 管,负责上拉和下拉电流。
使用方法: 直接使用
输出电平: 推挽输出的低电平是0V,高电平是3.3V。
2、普通开漏输出(GPIO_Mode_Out_OD):
使用场合: 一般用在电平不匹配的场合,如需要输出5V的高电平。
使用方法: 就需要再外部接一个上拉电阻,电源为5V,把GPIO设置为开漏模式, 当输出高组态时,由上拉电阻和电源向外输出5V的电压。
输出电平: 在开漏输出模式时,如果输出为0,低电平,则使N_MOS 导通,使输 出接地。若控制输出为1(无法直接输出高电平),则既不输出高电平 也不输出低电平,为高组态。为正常使用,必须在外部接一个上拉电 阻。
特性: 它具“线与”特性,即很多个开漏模式 引脚连接到一起时,只有当所有 引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部 上拉电阻所接的电源的电压。若其中一个引脚为低电平,那线路就相当 于短路接地,使得整条线路都为低电平,0 伏。
3、复用推挽输出(GPIO_Mode_AF_PP): 用作串口的输出。
4、复用开漏输出(GPIO_Mode_AF_OD): 用在IIC。
所有的开漏输出都需要接上拉电阻。
原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值