(嵌入式系列)STM32系列单片机的GPIO简介

简介: (嵌入式系列)STM32系列单片机的GPIO简介

STM32系列单片机以其较好的性能,丰富的片上资源,成为当今嵌入式行业最经典、最常用的单片机之一。其通用输入输出接口(GPIO)多样的工作方式亦是其优势之一。本文将从原理上解释其工作过程。先来看看GPIO几种工作模式的总体情况。

从上图中可以看出,GPIO共有4种输入模式和4种输出模式。

1输出模式

1.1 推挽输出

从中文的字面意思来理解,推挽就是推拉的意思,在此模式下,对于负载来说,分别有两个电流方向,故而得名。也可以参考模拟电路里的乙类放大电路。如下图所示。

在输出高电平时,P-MOS导通,N-MOS截止,而在输出低电平时,恰好相反P-MOS截止,N-MOS导通。这样单片机就可以通时输出高电平和低电平了。很好理解。

1.2 开漏输出

在这个模式的时候,只有N_MOS可以工作,且其漏极处于开路的状态,故而得名“开漏输出”。如下图所示。

从上图中可以看出,如果不接外部的负载RL,则对于单片机内部而言,N_MOS的漏极处于开路状态,因而当N_MOS导通的时候,输出低电平,当N_MOS关断的时候输出高阻态。那如何输出高低电平呢?

这个时候就需要外接上拉电阻。

此时,当单片机N_MOS导通的时候,输出低电平,当N_MOS关断的时候输出高电平。那么这么做的意义是什么呢?单片机本身就可以同时输出高电平和低电平,何必搞这么麻烦?

这里就和实际的使用需求有关系了

  1. 比方说有的负载需要较高的电压值,而单片机缺不能实现,这个时候就可以采用开漏输出,上图中可以提供约5V的输出电压。
  2. 要实现“线与”,意思就是说,只要有一个IO口输出低电平,则输出低电平,全为高电平时才输出高电平,当用硬件实现的时候,会发现,如果采用推挽输出的方式,必然会出现一个P-MOS和N-MOS同时导通的情况,这个时候可能会出现将管子烧坏的情况。

1.3 复用推挽输出

从电路中可以看出,复用推挽输出和推挽输出并没有太大区别,区别仅仅在于触发源不一样, 单纯的推挽输出是在软件中手动地设置01实现的。而复用推挽输出指的是在某些模式下,启用了引脚的复用功能,这个时候需要设置该引脚为复用推挽输出,因为这个时候开发人员只需要配置相应的寄存器(参数),不需要关注具体的引脚电平。

1.4 复用开漏输出

参考复用推挽输出部分。

其实在IIC通信协议中(对于主设备而言),SCL可以配置为推挽输出,因为只需要输出时钟信号,而SDA除了输出数据信号,同时还需要扫描输入的应答信号,这个时候就需要配置为开漏输出,当然,若将两根线都配置为开漏输出,也没有问题,这个时候两根线都需要配置上拉电阻。

2 输入模式

了解了上面的内容,四种输入模式相对来说就很好理解了。

2.1 浮空输入

顾名思义,对于单片机来说,此时的输入引脚处于高阻态,需要外部同时提供高电平和低电平,因为在该模式下,内置上拉电阻和下拉电阻都没有生效。而内部的TTL肖特基触发器相当于斯密特触发器,用于对输入信号进行“整形”,将其转化为理想的TTL电平后传入输入数据寄存器,等待CPU读取。

2.2 上拉输入

所谓的上拉输入就是内部的上拉电阻投入使用。这个时候当外部输入低电平时可正常输入低电平,而当外部无输入信号(高阻态)时,可由单片机自身的上拉电阻提供高电平信号。

上图为当外部引脚配置为上拉输入时,外部引脚为高阻态时的电流通路。

2.3 下拉输入

下拉输入与上拉输入正好相反,这个时候当外部输入低电平时可正常输入高电平,而当外部无输入信号(高阻态)时,可由单片机自身的下拉电阻提供低电平信号。

2.3 模拟输入

只有在此模式下,输入才为模拟信号,因为其他模式输入模拟信号没有任何意义,经过了肖特基触发器,全都变成了数字信号。这时候上拉和下拉电阻也没有起到作用,电平直接由外部输入, 传输到内部的AD转换器单元将其转换为数字信号,等待CPU处理。

温馨提示:若要十分透彻地理解以上的内容,需要自己补充一些模电和数电的相关知识。

-------------------------------------------------------------END-------------------------------------------------------------

相关文章
|
1月前
|
传感器 数据采集 人工智能
基于STM32单片机的智能晾衣架设计与实现【开源免费】
随着智能家居的发展,传统晾衣架已经难以满足现代家庭对便捷、智能化的需求。基于STM32单片机的智能晾衣架能够实现自动升降、光照检测、风干控制、远程控制等功能,为家庭用户提供更智能、更舒适的晾晒体验。本项目以STM32F103C8T6为核心控制器,通过电机驱动模块、光照传感器、温湿度传感器、蓝牙/Wi-Fi通信模块,实现晾衣架的自动化与远程控制。
基于STM32单片机的智能晾衣架设计与实现【开源免费】
|
7月前
|
数据可视化 关系型数据库 MySQL
嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议数据可视化
通过本文的介绍,我们详细讲解了如何结合嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议,实现数据的采集、传输、存储和可视化。这种架构在物联网项目中非常常见,可以有效地处理和展示实时数据。希望本文能帮助您更好地理解和应用这些技术,构建高效、可靠的数据处理和可视化系统。
385 82
|
7月前
|
人工智能 自然语言处理 测试技术
嵌入式开发者的灵魂拷问:通义灵码2.0能否Hold住51单片机竞赛级开发?
通义灵码2.0嵌入式开发专项评测,基于蓝桥杯第十二届单片机赛题(NE555频率检测),验证多文件代码生成及单元测试智能体能力。评测结果显示,AI在基础场景中具备实用性,但存在硬件抽象层缺陷和图像识别局限。原始得分58.1/70,主要问题为LED状态异常。完整代码已开源。
209 3
|
11月前
|
传感器 监控 JavaScript
千套单片机\stm32毕设课设题目及资料案列-干货分享
为帮助电子工程领域的学习者顺利毕业或掌握更多专业知识,我们精心整理了一系列单片机和STM32相关的题目及资料案例。这些资源覆盖了从毕业设计到课程设计的各个方面,包括但不限于智能小车、温度控制系统、无线通信、智能家居等多个领域。每项设计都配有详细的原理图、仿真图以及完整的文档资料,旨在帮助学生深入理解理论知识的同时,提高实际动手操作能力。无论是初学者还是有一定基础的学生,都能从中找到适合自己的项目进行实践探索。
2019 8
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
323 4
|
Web App开发 传感器 Linux
【嵌入式软件工程师面经】STM32单片机
【嵌入式软件工程师面经】STM32单片机
444 1
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
216 0
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
479 0
经验大分享:STM32F4寄存器初始化系列:GPIO
经验大分享:STM32F4寄存器初始化系列:GPIO
171 0