GPIO(通用输入/输出)、中断(hal库)

目录

GPIO(通用输入/输出)(hal库)(hal库))

GPIO工作模式

[推挽输出(Push-Pull Output)](#推挽输出(Push-Pull Output))

[开漏输出(Open-Drain Output)](#开漏输出(Open-Drain Output))

[复用推挽输出(Alternate Function Push-Pull Output)](#复用推挽输出(Alternate Function Push-Pull Output))

[复用开漏输出(Alternate Function Open-Drain Output)](#复用开漏输出(Alternate Function Open-Drain Output))

[上拉输入(Pull-Up Input)](#上拉输入(Pull-Up Input))

[下拉输入(Pull-Down Input)](#下拉输入(Pull-Down Input))

[浮空输入(Floating Input)](#浮空输入(Floating Input))

[模拟输入(Analog Input)](#模拟输入(Analog Input))

GPIO的HAL库接口函数

中断

NVIC(嵌套向量中断控制器)

[EXTI的 HAL库常用接口函数](#EXTI的 HAL库常用接口函数)


GPIO(通用输入/输出)(hal库)

在 STM32 微控制器中,GPIO(通用输入/输出)端口是一个重要的硬件模块,用于进行各种输入和输出操作。

GPIO工作模式

推挽输出(Push-Pull Output)

  • 定义:推挽输出模式允许 GPIO 引脚输出高电平或低电平,能在两个状态之间迅速切换。
  • 特点:在逻辑高电平时,GPIO 引脚被驱动到 VDD 电压;在逻辑低电平时,GPIO 引脚被拉到 GND 电压。适用于驱动外部设备,如 LED 或开关。
  • GPIO_MODE_OUTPUT_PP

开漏输出(Open-Drain Output)

  • 定义:开漏输出模式允许 GPIO 引脚在输出逻辑低电平时驱动到 GND 电压,而在输出逻辑高电平时,GPIO 引脚会"浮空",需外部上拉电阻拉到 VDD 电压。
  • 特点:适用于需要多路器或共用总线的场合,例如 I2C 总线。
  • GPIO_MODE_OUTPUT_OD

复用推挽输出(Alternate Function Push-Pull Output)

  • 定义:复用推挽输出模式允许 GPIO 引脚用于特定的外设功能,如定时器、USART 等,且可以推挽输出信号。
  • 特点:适用于需要特定外设功能的应用,如 PWM 输出。
  • GPIO_MODE_AF_PP;

复用开漏输出(Alternate Function Open-Drain Output)

  • 定义:复用开漏输出模式允许 GPIO 引脚用于特定的外设功能,同时采用开漏输出模式。
  • 特点:适用于需要共用总线或 I2C 总线等应用。
  • GPIO_MODE_AF_OD

上拉输入(Pull-Up Input)

  • 定义:上拉输入模式将 GPIO 引脚设置为输入,并在内部启用上拉电阻,以确保在未连接到信号源时,输入引脚保持高电平。
  • GPIO_InitStruct.Mode = GPIO_MODE_INPUT; // 输入模式
  • GPIO_InitStruct.Pull = GPIO_PULLUP; // 上拉电阻

下拉输入(Pull-Down Input)

  • 定义:下拉输入模式将 GPIO 引脚设置为输入,并在内部启用下拉电阻,以确保在未连接到信号源时,输入引脚保持低电平。
  • GPIO_InitStruct.Mode = GPIO_MODE_INPUT; // 输入模式
  • GPIO_InitStruct.Pull = GPIO_PULLDOWN; // 下拉电阻

浮空输入(Floating Input)

  • 定义:浮空输入模式将 GPIO 引脚设置为输入,不使用内部上拉或下拉电阻。
  • GPIO_InitStruct.Mode = GPIO_MODE_INPUT; // 输入模式
  • GPIO_InitStruct.Pull = GPIO_NOPULL; // 无上拉/下拉

模拟输入(Analog Input)

  • 定义:模拟输入模式用于将 GPIO 引脚配置为模拟模式,以便进行 ADC(模数转换)操作。
  • GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; // 模拟模式
  • GPIO_InitStruct.Pull = GPIO_NOPULL; // 无上拉/下拉

GPIO的HAL库接口函数

中断

NVIC(嵌套向量中断控制器)

NVIC (嵌套向量中断控制器)是 STM32 微控制器的中断控制器,管理所有中断请求的优先级和响应。使用 NVIC 可以配置中断优先级并使能中断。

EXTI的 HAL库常用接口函数

相关推荐
编码追梦人5 小时前
从零入门嵌入式系统:核心概念 + 环境搭建 + 传感器实战
单片机·嵌入式硬件
dqsh068 小时前
树莓派5+Ubuntu24.04 LTS CH348 / CH9344 驱动安装 保姆级教程
linux·c语言·单片机·嵌入式硬件·iot
点灯小铭8 小时前
基于单片机的16位逐次逼近AD电路设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
奔跑吧邓邓子9 小时前
【C语言实战(80)】C语言实战:从复盘到进阶,解锁编程新高度
c语言·进阶·复盘·终篇
@曾记否10 小时前
如何在Keil5中在没有硬件支持的情况下使用Keil的模拟器(Simulator) + 调试窗口输出进行调试
c语言·stm32
烛衔溟10 小时前
C语言多级指针与函数指针:指针的高级用法
c语言·算法
d111111111d12 小时前
STM32外设学习--DMA直接存储器读取(AD扫描程序,DMA搬运)--学习笔记。
笔记·stm32·单片机·嵌入式硬件·学习
EVERSPIN12 小时前
基于灵动MCU微控制器的呼吸机主控单片机方案
单片机·嵌入式硬件·mcu微控制器
树在风中摇曳13 小时前
C语言动态内存管理:从基础到进阶的完整解析
c语言·开发语言·算法
biter down14 小时前
C 语言17:位操作符 & | ^:从二进制编码到大小端
c语言·开发语言