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

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

相关推荐
我先去打把游戏先2 小时前
ESP32学习笔记(基于IDF):ESP32连接MQTT服务器
服务器·笔记·单片机·嵌入式硬件·学习·esp32
CiLerLinux7 小时前
第一章 FreeRTOS简介
单片机·嵌入式硬件·物联网·gnu
沐欣工作室_lvyiyi9 小时前
基于单片机的智能灯光控制系统设计与实现(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·灯光控制
Blossom.1189 小时前
把AI“刻”进玻璃:基于飞秒激光量子缺陷的随机数生成器与边缘安全实战
人工智能·python·单片机·深度学习·神经网络·安全·机器学习
应用市场10 小时前
STM32电池管理系统(BMS):电量统计原理与实现
stm32·单片机·嵌入式硬件
cici1587411 小时前
基于STM32G4系列MCU的3kW数字LLC电源控制
stm32·单片机·嵌入式硬件
平凡灵感码头11 小时前
基于STM32的智能门锁系统 经典开局,先来个点灯
stm32·单片机·嵌入式硬件
可爱的鸡仔11 小时前
STM32------存储器映像
stm32·单片机·嵌入式硬件
清风66666611 小时前
基于单片机的自动换挡式高精度数字电压表设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
HXQ_晴天12 小时前
STM32中MX_TIM2_Init函数和HAL_TIM_Base_MspInit函数区别
stm32·单片机·嵌入式硬件