news 2026/4/23 13:03:57

STM32_ADC

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32_ADC
简介

GPIO(General Purpose Input/Output,通用输入输出)是单片机最基础、最常用的功能之一,几乎所有的单片机应用都离不开GPIO的使用。STM32F407 系列芯片提供了丰富的GPIO资源,每个GPIO引脚都可以配置为不同的工作模式,支持推挽输出、开漏输出、上拉输入、下拉输入等多种功能。本文从GPIO的基本原理出发,详细讲解STM32F407 GPIO的配置方法、代码实现、工作模式以及实际应用案例,帮助你快速掌握GPIO的使用技巧。

一、GPIO核心概念与分类
1.1 基本概念

GPIO是单片机与外部世界交互的桥梁,通过GPIO引脚,单片机可以:

  • 输出控制信号:如控制LED亮灭、继电器吸合、电机转动等
  • 读取外部信号:如读取按键状态、传感器数据、外部中断等
  • 复用为外设功能:如串口、SPI、I2C等外设的通信引脚
1.2 STM32F407 的 GPIO 资源

STM32F407 系列芯片共有 144 个引脚,其中大部分是GPIO引脚,分布在多个GPIO端口中:

GPIO端口引脚数量端口时钟备注
GPIOA16RCC_AHB1Periph_GPIOA包含PA0-PA15
GPIOB16RCC_AHB1Periph_GPIOB包含PB0-PB15
GPIOC16RCC_AHB1Periph_GPIOC包含PC0-PC15
GPIOD16RCC_AHB1Periph_GPIOD包含PD0-PD15
GPIOE16RCC_AHB1Periph_GPIOE包含PE0-PE15
GPIOF16RCC_AHB1Periph_GPIOF包含PF0-PF15
GPIOG16RCC_AHB1Periph_GPIOG包含PG0-PG15
GPIOH2RCC_AHB1Periph_GPIOH仅包含PH0-PH1
二、GPIO工作模式与配置
2.1 工作模式

STM32F407 的 GPIO 共有 8 种工作模式,可分为输入模式和输出模式两大类:

输入模式

  • 浮空输入(GPIO_Mode_IN_FLOATING):引脚悬空,电平不确定,易受干扰
  • 上拉输入(GPIO_Mode_IPU):内部上拉电阻,默认高电平
  • 下拉输入(GPIO_Mode_IPD):内部下拉电阻,默认低电平
  • 模拟输入(GPIO_Mode_AN):用于ADC采样,引脚直接连接到ADC模块

输出模式

  • 推挽输出(GPIO_Mode_OUT_PP):可以输出高电平和低电平,驱动能力强
  • 开漏输出(GPIO_Mode_OUT_OD):只能输出低电平,高电平需要外部上拉电阻
  • 复用推挽输出(GPIO_Mode_AF_PP):用于外设功能,如串口TX
  • 复用开漏输出(GPIO_Mode_AF_OD):用于外设功能,如I2C通信
2.2 配置步骤

使用标准库配置GPIO的基本步骤:

  1. 使能GPIO端口时钟
  2. 配置GPIO引脚的工作模式
  3. 配置GPIO引脚的输出速度(仅输出模式需要)
  4. 配置GPIO引脚的上下拉电阻(可选)
2.3 代码实现
#include"stm32f4xx.h"/** * @brief 初始化GPIOA_Pin0为推挽输出 * @param 无 * @retval 无 */voidGPIOA_Pin0_Init(void){GPIO_InitTypeDef GPIO_InitStructure;// 1. 使能GPIOA时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);// 2. 配置GPIOA_Pin0GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;// 3. 初始化GPIOAGPIO_Init(GPIOA,&GPIO_InitStructure);}/** * @brief 初始化GPIOB_Pin1为上拉输入 * @param 无 * @retval 无 */voidGPIOB_Pin1_Init(void){GPIO_InitTypeDef GPIO_InitStructure;// 1. 使能GPIOB时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);// 2. 配置GPIOB_Pin1GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;// 输入模式下此参数无效GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;// 输入模式下此参数无效// 3. 初始化GPIOBGPIO_Init(GPIOB,&GPIO_InitStructure);}/** * @brief 设置GPIO引脚输出高电平 * @param GPIOx: GPIO端口,如GPIOA、GPIOB等 * @param GPIO_Pin: GPIO引脚,如GPIO_Pin_0、GPIO_Pin_1等 * @retval 无 */voidGPIO_SetPinHigh(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin){GPIO_SetBits(GPIOx,GPIO_Pin);}/** * @brief 设置GPIO引脚输出低电平 * @param GPIOx: GPIO端口,如GPIOA、GPIOB等 * @param GPIO_Pin: GPIO引脚,如GPIO_Pin_0、GPIO_Pin_1等 * @retval 无 */voidGPIO_SetPinLow(GPIO_TypeDef*<
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 23:56:24

STM32_DMA

简介 DMA(Direct Memory Access,直接内存访问)是一种允许外设直接与内存进行数据传输的技术,无需 CPU 干预,可大大提高数据传输效率。STM32F407 系列芯片配备了 2 个 DMA 控制器(DMA1 和 DMA2),共 16 个数据流,每个数据流可配置为不同的外设通道,支持多种传输模式,…

作者头像 李华
网站建设 2026/4/18 10:42:46

Z-Image-Turbo推理延迟优化:H800 GPU部署完整步骤

Z-Image-Turbo推理延迟优化&#xff1a;H800 GPU部署完整步骤 1. 为什么Z-Image-Turbo值得特别关注 你可能已经用过不少文生图模型&#xff0c;但Z-Image-Turbo带来的体验差异是实实在在的——不是“快一点”&#xff0c;而是“快到不用等”。在H800 GPU上实测&#xff0c;从…

作者头像 李华
网站建设 2026/4/22 14:24:55

VSCode Mermaid预览完全指南:从基础到高级的全方位解决方案

VSCode Mermaid预览完全指南&#xff1a;从基础到高级的全方位解决方案 【免费下载链接】vscode-mermaid-preview Previews Mermaid diagrams 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-mermaid-preview VSCode Mermaid预览是一款强大的插件&#xff0c;为开…

作者头像 李华
网站建设 2026/3/26 12:12:19

AI图像增强实战教程:集成WebUI的EDSR模型详细部署步骤

AI图像增强实战教程&#xff1a;集成WebUI的EDSR模型详细部署步骤 1. 为什么你需要AI图像超分&#xff1f;——从模糊到清晰的真实需求 你有没有试过翻出十年前的老照片&#xff0c;想发朋友圈却发现满屏马赛克&#xff1f; 有没有下载过一张网图做设计素材&#xff0c;放大两…

作者头像 李华
网站建设 2026/4/23 8:37:32

MGeo在电商平台的应用:收货地址合并与用户画像构建

MGeo在电商平台的应用&#xff1a;收货地址合并与用户画像构建 1. 为什么电商需要“懂地址”的AI&#xff1f; 你有没有遇到过这样的情况&#xff1a;同一个用户&#xff0c;在三个月内下了五单&#xff0c;收货地址却写了五种不同写法—— “杭州市西湖区文三路123号A栋501”…

作者头像 李华
网站建设 2026/4/23 8:36:53

MedGemma-X效果可视化:热力图定位+自然语言解释+结构化术语同步输出

MedGemma-X效果可视化&#xff1a;热力图定位自然语言解释结构化术语同步输出 1. 为什么“看懂一张胸片”比想象中更难&#xff1f; 你有没有试过盯着一张胸部X光片&#xff0c;明明知道肺野、纵隔、肋骨这些名词&#xff0c;却依然不确定“那里是不是有点不对劲”&#xff1…

作者头像 李华