STM32F4XX - GPIO设置

一个简单的初始化代码如下:

bash 复制代码
  GPIO_InitTypeDef  GPIO_InitStructure;
            
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOB时钟
  GPIO_InitStructure.GPIO_Pin =  Buzzer_PIN;//LED对应IO口
  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_UP;//上拉
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIO

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOB时钟

每次开始需要使用gpio引脚,都需要线使能相应GPIO总线时钟。 -----------这个时钟看上去是与总线相关(后面看uart adc时会看到,使用外设时还需要使能外设时钟)
GPIO_InitStructure.GPIO_Pin = Buzzer_PIN;//LED对应IO口

这个是指定引脚,比如GPIOA组的第几个引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式

设置GPIO模式也就是用途。模式有如下四种:

  1. GPIO_Mode_IN 普通的GPIO输入
  2. GPIO_Mode_OUT 普通的GPIO输出
  3. GPIO_Mode_AF 针对TIM, USART...
  4. GPIO_Mode_AN 针对ADC and DAC
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出

GPIO_Mode_IN输入模式时,不进行设置

GPIO_Mode_AF功能选择模式时,设置为GPIO_OType_PP

GPIO_Mode_AN模拟信号模式时,不进行设置

GPIO_Mode_OUT输出模式有如下类型:

  1. GPIO_OType_PP 推挽输出
  2. GPIO_OType_OD 开漏输出 (有外部上拉电阻时配这个?)
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz

作为普通gpio时,设置速度为100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉

设置为上拉,增加驱动能力。

相关推荐
Tlog嵌入式20 分钟前
蓝桥杯【物联网】零基础到国奖之路:八. RTC
arm开发·stm32·单片机·mcu·物联网·蓝桥杯·iot
石板小湫21 分钟前
【Proteus51单片机仿真】基于51单片机的汽车电动助力转向系统(包括代码讲解视频电流传感器、车速传感器、扭矩传感器、LCD12864显示模块)
嵌入式硬件·汽车·51单片机·proteus
firewood202425 分钟前
初学51单片机之IO口上下拉电阻相关
单片机·嵌入式硬件
石板小湫28 分钟前
【Proteus51单片机仿真】PWM直流电机调速
单片机·51单片机·proteus
耶耶耶!ohh1 小时前
嵌入式入门小工程
单片机·嵌入式硬件
代码敲不对.8 小时前
江科大笔记—软件安装
笔记·stm32·单片机·嵌入式硬件
&AtTiTuDe;10 小时前
如何使用IIC外设(硬件IIC)
经验分享·笔记·stm32·单片机·嵌入式硬件·硬件工程
LightningJie11 小时前
STM32(十五):I2C通信
stm32·单片机·嵌入式硬件
辰哥单片机设计11 小时前
4×4矩阵键盘详解(STM32)
stm32·单片机·嵌入式硬件·矩阵·计算机外设·传感器