news 2026/2/6 21:36:01

二.基本GPIO控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二.基本GPIO控制

2.1GPIO的基础知识

GPIO(General-Purpose input/output,通用输入/输出接口)

用于感知外部信号(输入模式)和控制外部设备(输出模式)

  • 简单模块:LED,按键,蜂鸣器,温度传感器,使用一个GPIO就可以完成数据的传输/

控制

  • 复杂一点的模块OLED,FLASH,六轴传感器需要多个引脚组成“协议”传输数据,

USART,IIC,SPI等协议

  • MCU单片机大都采用引脚复用模式也就是一个GPIO,可以直接控制它输出高低电平,也可以设置为某个协议的引脚之一。此外,一些MCU的引脚,还能设置为ADC模式读取模拟信号或者设置为DAC模式输出模拟信号

系统架构

2.2 IO八种工作模式

GPIO结构图

1、STM32 IO工作模式

输出模式有四种:推挽输出,开漏输出,复用开漏,复用推挽

输入模式有四种:上拉输入,下拉输入,浮空输入,模拟输入

输出模式:

1.推挽输出(Push-Pull,pp)

让输出控制变成了VDD/VSS输出,使得输出电流增大

提高了输出引脚的驱动能力,提高了电路的负载能力和开关的动作速度

推挽输出模式下,P-MOS和N-MOS均有效。

推挽输出模式下,STM32对10口具有绝对的控制权,引脚可以输出高低电平。

  • 当输出数据寄存器写1,上管导通,下管断开,输出控制接到VDD,输出为高电平
  • 当输出数据寄存器写0,上管断开,下管导通,输出控制接到VSS,输出为低电平

2.开漏输出(Open-Drain,OD)

推挽输出模式可以直接输出高电平,开漏输出需要外接上拉电阻才能输出高电平

开漏输出的特性

  • 利用外部电路驱动能力
  • 实现电平转换
  • 方便实现“逻辑与” 功能

开漏输出模式下,P-MOS无效,N-MOS有效。

开漏输出模式下,只有低电平才有驱动能力,高电平无驱动能力,引脚只能输出低电平,可以作为通信协议的驱动方式比如I2C通信的引脚,使用开漏输出模式。

  • 当输出数据寄存器写1,N-MOS断开,输出控制相当于断开,也就是高阻态
  • 当输出数据寄存器写0,N-MOS导通,输出控制相当于接VSS,输出为低电平

3.复用推挽/开漏输出(Alternate Funtion,AF)

GPIO除了作为通用输入输出引脚使用以外,还可以作为片上外(USART,IIC,SPI

专用引脚,即一个引脚可以有多种用途,但是同一时刻一个引脚只能使用复用功能中的一个

当引脚设置为复用功能的时候,可选择推挽复用模式或者复用开漏模式,在设置为复用开漏模式时,需要外接上拉电阻。

输入模式:

  • 上拉输入(Input Pull-up)

VDD经过开关、上拉电阻,连接外部I/O引脚。当开关闭合时,外部I/O输入信号时,默认输入高电平。

  • 下拉输入(Input Pull-down)

VSS经过开关,下拉电阻,连接外部I/O引脚,当开关闭合时,外部I/O无输入信号时,默认输入低电平

3.浮空输入(Floating Input)

两个上下拉电阻开关均断开,没有上拉也没有下拉,I/O引脚直接连接TTL肖特基触发器此时,I/O引脚浮空,读取的电平是不确定的,外部信号是什么电平,MCU引脚就输入什么电平

MCU复位上电后,默认为浮空输入模式

4.模拟输入(Analoge mode)

两个上下拉电阻开关均断开,同时TTL肖特基触发器也断开,引脚信号直接连接模拟输入,实现对外部信号的采集。

2、GPIO的输出速度

STM32的I/O引脚工作再输出模式下时,需要配置I/O引脚的输出速度

该输出速度不是输出信号的速度,而是I/O口驱动电路的响应速度。

STM32提供了三个速度,2MHZ,10MHZ,50MHZ

实际开发过程中需要结合实际情况选择合适的响应速度,以兼顾信号的稳定性和低功耗

  • 当设备为高速时,功耗大,噪声大,电磁干扰强
  • 当设备为低速时,功耗低,噪声小,电磁干扰弱

简单外设,比如LED灯,蜂鸣器建议使用2MHZ的输出速度而复用为IIC,SPI等通信信号时,建议使用10MHZ或50MHZ以提高响应速度。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/4 10:58:24

Keil5创建新工程超详细版配置说明

从零开始搭建Keil5嵌入式工程:手把手带你避坑、调通、跑起来你是不是也曾在深夜对着Keil5发愁:“为什么我新建的工程编译报错?下载后单片机不运行?断点设不上?”别急——这几乎是每个嵌入式新手都会踩的坑。而问题的核…

作者头像 李华
网站建设 2026/2/5 13:00:56

lora-scripts输出目录结构解析:了解每个生成文件的作用

lora-scripts输出目录结构解析:了解每个生成文件的作用 在深度学习模型的微调实践中,LoRA(Low-Rank Adaptation)已成为一种主流的轻量化训练方案。尤其在 Stable Diffusion 图像生成和大语言模型(LLM)定制场…

作者头像 李华
网站建设 2026/2/4 11:02:25

通过lora-scripts实现营销文案话术定制化的大模型训练方法

通过LoRA-Scripts实现营销文案话术定制化的大模型训练方法 在电商运营的日常中,你是否曾为批量生成风格统一、转化率高的商品文案而焦头烂额?通用大模型虽然能写几句“像样”的话,但总差那么一点“味道”——不够品牌化、缺乏情绪张力、语气千…

作者头像 李华
网站建设 2026/2/6 9:11:04

CMOS工艺下的全加器实现:结构原理剖析

CMOS工艺下的全加器实现:从逻辑到晶体管的深度解析你有没有想过,当你在电脑上敲下一个“11”,背后究竟发生了什么?这看似简单的运算,其实是由成千上万个微小电路协同完成的——而其中最基础、最关键的单元之一&#xf…

作者头像 李华
网站建设 2026/2/7 5:27:36

使用lora-scripts训练复古街道场景图:艺术创作新方式

使用LoRA-Scripts训练复古街道场景图:艺术创作新方式 在数字艺术创作中,风格化图像生成早已不是新鲜事。但当设计师需要精准复现某种特定视觉语言——比如一条1920年代欧洲石板路街道的黄昏氛围,或是昭和时期日本町屋小巷的暖光质感时&#x…

作者头像 李华
网站建设 2026/2/4 9:56:33

汇编语言全接触-66.Win32汇编教程十

在这儿下载本节的所有源程序概述Windows 的定时器是一种输入设备,它周期性地在指定的间隔时间通知应用程序。它可以用向指定窗口发送 WM_TIMER 消息或者调用指定的过程来执行用户的程序。定时器的应用主要包括下面一些地方:时钟程序 - 显然,这…

作者头像 李华