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

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

相关推荐
纳祥科技1 小时前
Switch快充方案,内置GaN,集成了多个独立芯片
单片机
单片机日志2 小时前
【单片机毕业设计】【mcugc-mcu826】基于单片机的智能风扇系统设计
stm32·单片机·嵌入式硬件·毕业设计·智能家居·课程设计·电子信息
松涛和鸣3 小时前
从零开始理解 C 语言函数指针与回调机制
linux·c语言·开发语言·嵌入式硬件·排序算法
小曹要微笑9 小时前
STM32F7 时钟树简讲(快速入门)
c语言·stm32·单片机·嵌入式硬件·算法
XINVRY-FPGA10 小时前
XCVP1802-2MSILSVC4072 AMD Xilinx Versal Premium Adaptive SoC FPGA
人工智能·嵌入式硬件·fpga开发·数据挖掘·云计算·硬件工程·fpga
沐欣工作室_lvyiyi10 小时前
家用按摩椅控制系统设计(论文+源码)
单片机·物联网·毕业设计·按摩椅控制系统
天天爱吃肉821813 小时前
电机控制技术深度解析:从基础原理到前沿实战
python·嵌入式硬件·汽车
学习路上_write13 小时前
FREERTOS_互斥量_创建和使用
c语言·开发语言·c++·stm32·单片机·嵌入式硬件
czhaii13 小时前
单片机RTOS“实时响应时间”的定义与测量方法
单片机