news 2026/6/25 21:13:34

【STM32HAL库开发】学习笔记(1)——GPIO

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【STM32HAL库开发】学习笔记(1)——GPIO

1.引脚通用功能与复用功能

通过直接控制单片机引脚输出高/低电平或者读取引脚高/低电平状态的方式叫做引脚的通用功能。除此之外的功能称为引脚的复用功能,这些复用功能可以给其他模块进行使用,如UART串口、TIM定时器等。

2.引脚复用重映射

在实际使用过程中,IO引脚可能会出现一些功能定义重合,即一个引脚可能既是TIM定时器的某个通道的引脚,也是串口的TX/RX引脚,但好在这些功能往往在单片机提供了一组或者多组备用引脚,那么只需要将冲突引脚重映射到其他IO引脚,那么IO定义冲突就可以解决了。

上图PA9要定义为定时器1通道2使用,那么USAERT1_TX就不能再使用这个引脚,那么就需要重映射到另一组备用引脚上,即PB6,作为一对功能引脚,那么相应的PB7就是USART1_RX

3.GPIO输出与输入

3.1 GPIO4种输出模式

GPIO有四种输出模式,通用推挽输出、通用开漏输出、复用推挽输出、复用开漏输出。

通用:一般设置,直接控制引脚的状态;

复用:通过一些模块或者功能(如串口)间接控制引脚的状态;

推挽输出:输出引脚的两个MOS管总有一个导通,引脚输出状态为低电平或者高电平

开漏输出:输出引脚的漏极的那个P-MOS管一直处于断开状态,引脚输出状态为低电平或者高阻由N-MOS的通断控制;

3.2 IO最大输出速度

高低电平的转换不是瞬间完成的,从低电平到高电平需要一个上升时间、从高电平到低电平也需要一个下降时间,这两个时间限制了IO引脚的最大输出速度。在STM32中,有3种输出速度,分别是低速、中速和高速。速率越高功耗越大,甚至更高速可能对其他元器件产生电磁干扰,可以根据实际需要进行选择。

低速:2MHz 中速:10MHz 高速:50MHz

3.3GPIO4种输入模式

输入上拉:GPIO引脚接上拉电阻到VDD(正电源3.3V),使IO引脚默认处于高电平状态;

输入下拉:GPIO引脚接下拉电阻到VSS(电源地 0V),使IO引脚默认处于低电平状态;

输入浮空:GPIO引脚既不接上拉电阻到VDD(正电源3.3V),也不接上拉电阻到VDD(正电源3.3V),IO引脚处于浮空状态;

模拟模式:常用于ADC(模数转换)采集外部模拟信号。数字输入电路(如肖特基触发器)被关闭,避免将连续变化的模拟信号量化为 0/1,内部上拉/下拉电阻关闭,即使配置了上拉或下拉也不会生效,从而保证信号不被干扰,引脚处于高阻状态,仅将外部电压直接送入 ADC 模块。

上图为GPIO引脚的电路示意图

4种输入模式同样根据需要进行选择。此外在选择上拉输入时,要考虑电流大小,单片机上拉引脚输出电流有限,过大可能对单片机造成一些不好的影响。

3.4代码

HAL_GPIO_ReadPin()、HAL_GPIO_WritePin()函数是GPIO输入输出的函数。

HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0); // 读取PA0的引脚状态 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET); // 设置PA0的状态为高电平
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 21:04:18

AlienFX Tools深度指南:从灯光控制到系统优化的全面解决方案

AlienFX Tools深度指南:从灯光控制到系统优化的全面解决方案 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools AlienFX Tools是一套用于控制A…

作者头像 李华
网站建设 2026/6/25 21:03:33

Proxmox 备份恢复:VM 和 LXC 恢复指南、PBS 恢复局限及 Veeam 补充方案

核心内容:开始之前:恢复 Proxmox 需要准备什么按备份来源划分的 Proxmox 恢复方法如何从备份恢复 Proxmox VM(Web UI 方式)如何从 Proxmox Backup Server 恢复 Proxmox VM如何从备份恢复 LXC 容器跨节点和跨集群 VM 恢复常见的 Pr…

作者头像 李华
网站建设 2026/6/25 21:02:09

单个西克CLV65x激光扫描器项目参数设定

按下面设置完成后,就要根据 AN46_EN_CLV6xx_Commands ,编写PLC程序发送触发扫码指令下期分解程序段! 一、主站设置 需将扫码器设置 1 号站,设置为主站,通讯方式确认! 二、控制触发方式设置 确定控制触发方式…

作者头像 李华
网站建设 2026/6/25 21:00:35

用 Codex 联动 Agnes 搭建 AI 视频流水线:从单镜到连贯短片

在 2026 年的今天,生成一段 AI 视频已经不是新鲜事。但对于开发者和内容创作者来说,真正的痛点在于:如何摆脱繁琐的 API 调试、异步任务轮询以及多段视频拼接时的“角色变脸”问题?传统的开发流程中,你需要自己写接口、…

作者头像 李华
网站建设 2026/6/25 20:57:09

如何快速使用diff-pdf:免费PDF差异检测的完整指南

如何快速使用diff-pdf:免费PDF差异检测的完整指南 【免费下载链接】diff-pdf A simple tool for visually comparing two PDF files 项目地址: https://gitcode.com/gh_mirrors/di/diff-pdf diff-pdf是一款专为PDF文件比较而设计的免费开源工具,能…

作者头像 李华