【华为云技术分享】STM32 GPIO的原理、特性、选型和配置

基本结构

STM32 GPIO是通用输入/输出端口的英文简称,其可实现输入、输出、驱动、通信等功能,STM32的I/O 端口有8种模式(4种输入模式和4种输出模式),每个 I/O 端口位支持3种最大翻转速度(2MHz、10MHz、50MHz),均可自由编程,但I/O 端口寄存器必须按 32 位字、半字(16位)或字节(8位)进行访问,具体模式如下所示:

浮空输入
上拉输入
下拉输入
模拟输入
开漏输出
推挽输出
复用功能推挽输出
复用功能开漏输出

以STM32L011为例(其他STM32处理器大同小异),GPIO基本结构如下所示:

关键器件解析:

1、保护二极管:防止I/O引脚外部过高、过低的电压输入,当引脚电压高于VDDIOx时,上方的二极管导通;当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。

2、开关:开关为TTL肖特基触发器,将模拟信号转化为0和1的数字信号,但当GPIO作为ADC采集电压通道时,此时信号不再经过触发器进行TTL电平转换。

3、P-MOS、N-MOS:单元电路使得GPIO具有“推挽输出”和“开漏输出”的功能。

4种输入模式

STM32具有浮空输入、上拉输入、下拉输入和模拟输入4种输入模式。

浮空输入模式,I/O端口的电平信号由外部输入决定,电平状态不确定,最终直接进入输入数据寄存器。浮空输入通常用于配置USART的RX引脚,如下图所示:

上拉输入模式,I/O端口悬空(在无信号输入)的情况下,电平状态保持在高电平,当输入低电平时,电平状态是低电平,最终直接进入输入数据寄存器,如下图所示:

下拉输入模式,I/O端口悬空(在无信号输入)的情况下,电平状态保持在低电平,当输入高电平时,电平状态是高电平,最终直接进入输入数据寄存器,如下图所示:

模拟输入模式,I/O端口的模拟信号(电压信号,而非电平信号)直接模拟输入到片上外设模块,比如ADC模块等。模拟输入通常应用于ADC模拟输入,或者低功耗下省电等情景,如下图所示:

4种输出模式

STM32有开漏输出、推挽输出、复用功能开漏输出和复用功能推挽输出4种输出模式(本文STM32L011的上、下拉电阻为公共区域,所以输出模式具有上拉或下拉功能)。

开漏输出模式,通过配置置位/复位寄存器或者输出数据寄存器的值,途经N-MOS管,最终输出到I/O端口。开漏输出只可以输出强低电平,高电平得靠外部电阻拉高,输出端相当于三极管的集电极,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内),如下图所示:

需要注意N-MOS管的特性,当设置输出的电平状态为高电平时,N-MOS管处于关闭状态,此时I/O端口的电平就不会由输出的高低电平决定,而是由I/O端口内部或者外部的上拉或者下拉决定;当设置输出的电平状态为低电平时,N-MOS管处于开启状态,此时I/O端口的电平就是低电平。

推挽输出模式,通过配置置位/复位寄存器或者输出数据寄存器的值,P-MOS管和N-MOS管,最终输出到I/O端口。推挽输出可以输出强高、低电平,连接数字器件,如下图所示:

需要注意P-MOS管和N-MOS管的特性,当设置输出的电平状态为高电平时,P-MOS管处于开启状态,N-MOS管处于关闭状态,此时I/O端口的电平就由P-MOS管决定:高电平;当设置输出的电平状态为低电平时,P-MOS管处于关闭状态,N-MOS管处于开启状态,此时I/O端口的电平就由N-MOS管决定:低电平。

复用功能开漏输出模式、复用功能推挽输出模式的原理和开漏输出模式、推挽输出模式原理基本一致,只不过输出的高低电平,不是由MCU配置置位/复位寄存器或者输出数据寄存器的值,而是利用片上外设模块的复用功能输出来决定的(通信接口(SPI,UART,I 2 C,USB,CAN,LCD等)、定时器、调试接口等复用)。复用功能开漏输出通常用于TX1、MOSI、MISO等引脚的配置,复用功能推挽输出通常用于I2C的SCL、SDA。以复用功能推挽输出模式为例,实现原理如下图所示:

GPIO选型和配置

如何选择适合其应用开发的GPIO模式和配置呢?请参考下图所示。

作者:华为云特约供稿开发者 不脱发的程序猿

原文地址:https://www.cnblogs.com/huaweicloud/p/12383436.html

时间: 2024-11-07 15:37:17

【华为云技术分享】STM32 GPIO的原理、特性、选型和配置的相关文章

【华为云技术分享】基于小熊派STM32芯片的通过MQTT上报JSON数据到华为物联网平台的自动售货机Demo解析

[摘要] STM32的工程在文章末尾,可自行下载. 一.工程配置 1.MCU类型选择STM32L431RC 2.烧录器选择OpenOCD,参数 -f interface/stlink-v2-1.cfg -f target/stm32l4x.cfg 3.输出目录选择 LiteOS_Lab_STM32\targets\STM32L431_BearPi\GCC\appbuild 4.编译器Makefile选择 targets\STM32L431_BearPi\GCC\Makefile 5.平台参数配置

王晶:华为云OCR文字识别服务技术实践、底层框架及应用场景 | AI ProCon 2019【华为云技术分享】

演讲嘉宾 | 王晶(华为云人工智能高级算法工程师王晶) 出品 | AI科技大本营(ID:rgznai100) 近期,由 CSDN 主办的 2019 中国AI 开发者大会(AI ProCon 2019)在北京举办.在计算机视觉技术专题,华为云OCR人工智能高级算法工程师王晶分享了“文字识别服务的技术实践.底层框架及应用场景”的主题演讲. 演讲的第一部分,他分享了文字检测和识别的基础知识以及难点和最新进展.第二部分是华为云文字识别服务关键能力.关键技术,以及落地过程中遇到的“坑”,这对其他人工智能产

【华为云技术分享】如何设计高质量软件-领域驱动设计DDD(Domain-Driven Design)学习心得

DDD做为软件设计方法于2004年提出,一直不温不火,最近几年突然火起来了,为啥呢?正所谓机会给有准备的人,因为微服务的流行,大家都跃跃欲试把传统单体软件转成微服务架构,但理论很丰满,现实很骨感,光是分解微服务就让人找不到北,而DDD是歪打正着也好,富有远见也好,正好适合微服务转型设计,不火都难. 最近学习了领域驱动设计(Domain-Driven Design),感觉受益匪浅,那到底啥是DDD呢?这里分享一下学习心得.网上有很多详细的资料,感兴趣可以看看这个https://www.infoq.

【华为云技术分享】技术探秘:华为云瑶光何以定方向

作为北斗第七星,瑶光自古就可用来判断四季更迭.引向定时.而作为全新发布的智能云操作系统,瑶光智慧云脑又是如何做到统领云上各类资源.实现租户需求与资源供应之间最佳匹配的呢?在华为云瑶光实验室.华为云算法创新实验室里,我们找到了答案. #初识资源调度# 云OS:我太“南”了 依托虚拟化技术,我们得以将数据中心海量的计算.存储资源以云服务的形式对外提供.而随着数据中心规模扩展.边缘计算带来的算力延伸,承担着高效.精准资源调度的云操作系统面临着三大挑战: 第一个挑战是云计算的资源消耗/售卖模式带来的.云

【华为云技术分享】漫谈LIteOS-物联网操作系统介绍

[摘要] 本文主要对于目前物联网操作系统的定义以及主要特点进行了分析,最后介绍了几个常见的物联网操作系统. 1简介 提到操作系统,可能首先想到的就是苹果操作系统,windows,Linux,Unix,Android,IOS等,显然目前比较为人熟知的操作系统基本都是一些手机或者电脑端的操作系统.而随着互联网技术的不断发展,硬件的体积越来越小,物联网技术也迎来了爆棚式的发展.物理网不同于 互联网的不同在于后者更关注的是人与人的互联,而前者是更加强调人与物,物与物的连接,从而实现万物互联(IOT).显

华为云实战开发】5.如何快速创建免费Git代码仓库【华为云技术分享】

1 文章目的 本文主要帮助已经掌握或者想要掌握Git的开发者,如何更好的应用Git,以及更好的将Git与DevCloud结合应用. 2 概述 2.1 版本控制系统介绍 从狭义上来说,版本控制系统是软件项目开发过程中管理代码所有修订版本的软件,能够存储.追踪文件的修改历史,记录多个版本的开发和维护,事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理.版本控制系统(Version Control Systems)主要分为两类,集中式和分布式. 2.1.1 集中式版本控制系统 集中式版本控

【我的物联网成长记3】如何开发物联网应用?【华为云技术分享】

[摘要] 物联网应用是设备管理.故障监测.数据分析的重要工具.本文介绍如何基于物联网平台开发应用,包括API.SDK和图形化开发三种方式. -------------------整体方案------------------- 物联网应用是企业和开发者进行设备管理.告警&故障监测.业务监控.数据分析的重要工具.物联网平台屏蔽了设备接入的复杂性和协议的差异性,解耦应用与设备,为上层应用提供统一格式的数据,简化终端厂商开发的同时,也让应用提供商聚焦于自身的业务开发.基于华为物联网平台的应用开发方案如下

揭秘丨7分钟看懂华为云鲲鹏Redis背后的自研技术【华为云技术分享】

2019年5月,华为云发布全球首个基于自研ARM架构的分布式缓存鲲鹏Redis,搭载华为LibOS+华为编译器+安全容器引擎三项黑科技,在保证Redis强劲高性能外,还降低客户30%的使用成本,真正实现了好用不贵的普惠型分布式缓存Redis产品. 本文从技术视角解读华为云鲲鹏Redis是如何通过数据中心基础设施.芯片.硬件.软件等全栈创新优化,达成以上效果. 一.为什么ARM架构适合Redis? 众所周知,Redis是一款风靡全球的高性能.高灵活性.数据结构类型丰富的key-value内存数据库

华为云流媒体性能测试解决方案 轻松应对流量危机【华为云技术分享】

背景 随着带宽提速和互联网发展,内容丰富.形式多样的视频正成为碎片化时代娱乐消费的新宠,短视频.视频直播.在线钢琴陪练.合唱直播一系列新玩法层出不穷,涉及电竞.社交.电商.教育等各个行业.网络视频快速发展对系统性能带来了巨大的考验. 流媒体业务场景 下面是用户与流媒体服务器的简化交互关系,主要分为推流和拉流2大类. 推流就是从外界采集数据后利用流媒体协议将文件推流至流媒体服务器端,拉流就是将文件从流媒体服务器拉取至本地播放的过程,流媒体的文件主要是由音频和视频2个部分组成,youtube.土豆.