文章目录

  • 一、GPIO八种模式
  • 1. 输入
  • 2. 输出
  • 3. 如何选择GPIO的模式
  • 二、库函数GPIO配置
  • 1. 配置代码
  • 2.参数设置
  • 一、GPIO八种模式

    GPIO的输入输出是对于STM32单片机来说的。以下仅为个人粗略笔记,内部电路分析可参考博客https://blog.csdn.net/k666499436/article/details/123845466

    1. 输入

    1. 上拉输入
    2. 下拉输入
    3. 浮空输入
    4. 模拟输入

    2. 输出

    1. 复用推挽输出
    2. 普通推挽输出
    3. 复用开漏输出
    4. 普通开漏输出

    3. 如何选择GPIO的模式

    1. 先判断对于单片机来说是输入还是输出
    2. 若为输入:①看引脚是否为ADC输入,如果是则为模拟输入;
      ②看引脚悬空时,电压不确定,可为高电平、低电平;
      ③需要高电平-内部有上拉电阻-悬空时为高电平;
      ④需要低电平-内部有下拉电阻-悬空时为低电平;
    3. 若为输出:①有外设-为复用模式;无外设-为普通模式;
      ②只能输出低电平-开漏模式;可输出高电平、低电平-推挽模式。

    二、库函数GPIO配置

    1. 配置代码

    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//打开GPIOE口的时钟	
    	GPIO_InitTypeDef GPIO_InitStruct={0};//清零结构体
    	//GPIO参数配置
    	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
    	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_2;
    	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;
    	GPIO_Init(GPIOE,&GPIO_InitStruct);//初始化
    	GPIO_SetBits(GPIOE,GPIO_Pin_2);//置引脚
    

    2.参数设置

    查找固件库使用手册

    1. GPIO初始化


      注意:
      当某管脚设置为上拉或者下拉输入模式,使用寄存器 Px_BSRR 和 PxBRR
      GPIO_Mode 允许同时设置 GPIO 方向(输入/输出)和对应的输入/输出设置,:位[7:4]对应 GPIO 方向,
      位[4:0]对应配置。GPIO 方向有如下索引
  • GPIO 输入模式 = 0x00
  • GPIO 输出模式 = 0x01
    Table 186. 给出了所有 GPIO_Mode 的索引和编码

    例子:
  • 例:
    /* Configure all the GPIOA in Input Floating mode */ 
    GPIO_InitTypeDef GPIO_InitStructure; 
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; 
    GPIO_Init(GPIOA, &GPIO_InitStructure); 
    
    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32 GPIO配置详解

    发表评论