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;//上拉

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

相关推荐
sramdram17 分钟前
灵动高性能32位MCU空调解决方案
单片机·嵌入式硬件·mcu·32位mcu
Hotchip_MEMS2 小时前
ASIC+MCU方案简化:MS2102AB-M00如何降低主控芯片的判别压力?
人工智能·单片机·嵌入式硬件·物联网·制造
sramdram2 小时前
应用在单片机上的MRAM芯片嵌入式存储方案
单片机·嵌入式硬件·mram·mram芯片
piaoyiren2 小时前
普中A6 STC8A 动态数码管显示讲解
嵌入式硬件·51单片机·c
阿拉斯攀登4 小时前
内核模块开发:module_init 与模块机制详解
linux·网络·嵌入式硬件·linux驱动
ICGOODFIND14 小时前
2026物联网模组选型指南:U-BLOX定位模组+SIMCOM芯讯通主流蜂窝通信模组参数与场景适配
嵌入式硬件·物联网·硬件工程·iot
阿拉斯攀登5 小时前
嵌入式 Linux 驱动概述:分类、内核模块、开发环境
linux·嵌入式硬件·linux内核·嵌入式·linux驱动
2401_854151556 小时前
STM32 位带操作——像 51 一样操作 GPIO
单片机·嵌入式硬件
zlinear数据采集卡15 小时前
从0到1硬核拆解:工业级数据采集卡的隔离设计与Modbus通信实战
arm开发·单片机·嵌入式硬件·fpga开发·开源
FreakStudio20 小时前
WIZnet 开源方案分享:W55MH32 开发板 + 小智 AI实现以太网版本的小智机器人
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机