STM32CubeMx+HAL笔记(五)GPIO原理

一、什么是GPIO?

1.简介

(1)GPIO是通用输入输出端口简称

(2)是stm32可控制的引脚

(3)GPIO与外部设备连接,可实现控制、与外部设备通信、数据采集等功能

(4)stm32控制的是GPIO上电平的变化

2.GPIO组成框图

 从上图可以看出,GPIO口实现的就是输入输出功能,所以可以从输入驱动器输出驱动器两个方面去剖析。

(1)保护二极管:外部设备与GPIO口连接时,若电压过高或过低都可以通过这两个二极管进行保护,防止不正常电压进入芯片导致芯片烧毁。STM32不建议直接驱动电机,会导致电机不转或者stm32芯片烧毁。官方数据手册明确stm32 GPIO口电压范围。

(2)输出驱动器:

        【1】P-MOS管和N-MOS管组成的电路使GPIO具有“推挽输出”、“开漏输出”两种模式。

         推挽输出:

                IN: H   OUT: H (上面三极管导通,下方三极管截至,OUT输出高电平3.3V); 

                IN: L    OUT: L (上方三极管截至,下方三极管导通,OUT输出低电平0V)

                优点:OUT端高低电平与电源挂钩,电压信号强,STM32常用该模式

        开漏输出:上方的P-MOS管完全不工作

                IN: L  OUT: L(P-MOS关闭,N-MOS导通,输出接地)

                IN: H  OUT: 高阻态(P-MOS关闭,N-MOS也关闭), 只有用上拉电阻把OUT与VDD连接

                上,OUT引脚才会输出高电平

                优点:可实现“线与”功能,一般应用于I2C、SMBUS通讯中,还用于电平不匹配场合

        【2】输出数据寄存器和复用功能输出

  (3)输入驱动器

        【1】输出数据寄存器

        【2】复用功能输入

        【3】模拟输入:模拟信号采集

         其中【1】【2】需要先经过TTL肖特基触发器,【3】不需要;因为肖特基触发器的功能是将模拟信号转换成离散信号。

3.GPIO工作模式

        8种工作模式,三大类:输出模式(4种)、输出模式(2种)、复用功能(2种)

输入模式:模拟、浮空、上拉、下拉输入。输入模式下,施密特触发器打开,输出被禁止

输出模式:推挽、开漏输出。输出模式下,施密特触发器打开,输入可用举例:用GPIO控制LED灯,GPIO配置输出模式,此时GPIO端口可以输出高低电平控制灯的亮灭,也可以通过GPIO口读取当前电平状态知道灯的情况。

复用功能:推挽、开漏。在复用功能下,输出使能,可工作在推挽和开漏模式,但是,输出信号源于其他外设,输出数据寄存器无效;输入可用,可以通过输入数据寄存器获取GPIO状态。

版权声明:本文为CSDN博主「艾特5号」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42638731/article/details/122225243

一、什么是GPIO?

1.简介

(1)GPIO是通用输入输出端口简称

(2)是stm32可控制的引脚

(3)GPIO与外部设备连接,可实现控制、与外部设备通信、数据采集等功能

(4)stm32控制的是GPIO上电平的变化

2.GPIO组成框图

 从上图可以看出,GPIO口实现的就是输入输出功能,所以可以从输入驱动器输出驱动器两个方面去剖析。

(1)保护二极管:外部设备与GPIO口连接时,若电压过高或过低都可以通过这两个二极管进行保护,防止不正常电压进入芯片导致芯片烧毁。STM32不建议直接驱动电机,会导致电机不转或者stm32芯片烧毁。官方数据手册明确stm32 GPIO口电压范围。

(2)输出驱动器:

        【1】P-MOS管和N-MOS管组成的电路使GPIO具有“推挽输出”、“开漏输出”两种模式。

         推挽输出:

                IN: H   OUT: H (上面三极管导通,下方三极管截至,OUT输出高电平3.3V); 

                IN: L    OUT: L (上方三极管截至,下方三极管导通,OUT输出低电平0V)

                优点:OUT端高低电平与电源挂钩,电压信号强,STM32常用该模式

        开漏输出:上方的P-MOS管完全不工作

                IN: L  OUT: L(P-MOS关闭,N-MOS导通,输出接地)

                IN: H  OUT: 高阻态(P-MOS关闭,N-MOS也关闭), 只有用上拉电阻把OUT与VDD连接

                上,OUT引脚才会输出高电平

                优点:可实现“线与”功能,一般应用于I2C、SMBUS通讯中,还用于电平不匹配场合

        【2】输出数据寄存器和复用功能输出

  (3)输入驱动器

        【1】输出数据寄存器

        【2】复用功能输入

        【3】模拟输入:模拟信号采集

         其中【1】【2】需要先经过TTL肖特基触发器,【3】不需要;因为肖特基触发器的功能是将模拟信号转换成离散信号。

3.GPIO工作模式

        8种工作模式,三大类:输出模式(4种)、输出模式(2种)、复用功能(2种)

输入模式:模拟、浮空、上拉、下拉输入。输入模式下,施密特触发器打开,输出被禁止

输出模式:推挽、开漏输出。输出模式下,施密特触发器打开,输入可用举例:用GPIO控制LED灯,GPIO配置输出模式,此时GPIO端口可以输出高低电平控制灯的亮灭,也可以通过GPIO口读取当前电平状态知道灯的情况。

复用功能:推挽、开漏。在复用功能下,输出使能,可工作在推挽和开漏模式,但是,输出信号源于其他外设,输出数据寄存器无效;输入可用,可以通过输入数据寄存器获取GPIO状态。

版权声明:本文为CSDN博主「艾特5号」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42638731/article/details/122225243

生成海报
点赞 0

艾特5号

我还没有学会写个人说明!

暂无评论

相关推荐

基于STM32的高精度频率计设计

前言 本文记录了博主完成的一个课设作品(学分为3.5分),题目需要利用ARM做出一个高精度频率计。具体要求如下: 1)实现对10M以内数字信号频率的高精度测量&#xff0c

HAL库控制PS2手柄

吐槽一下 最近买了个ps2手柄,结果买家发的例程全都是好几年前的库函数版本,尝试移植基本没啥可能。虽然PS2手柄已经被开发很久了,不过我看网上用hal库来写控制的很少,例程也都是用库函数

STM32G4之RTC实时时钟

前言 一、RTC介绍 STM32 的 RTC 外设(Real Time Clock) ,实质是一个掉电后还继续运行的定时器。STM32G4 的 RTC,是一个独立的 BCD 定时器/计数器

stm32进不去串口中断的问题

今天遇到了特别棘手的问题,程序进入串口中断 原本应该进入这段程序: void USART1_IRQHandler(void) {if(USART_GetITStatus(USART1,USART_IT_RXNE)