打印
[应用相关]

STM32的GPIO

[复制链接]
677|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-9-3 08:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
GPIO基本控制

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

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

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

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

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



STM32的GPIO(General Purpose Input/Output,通用输入输出)引脚支持多种工作模式,这些模式通过配置GPIOx_MODER(模式寄存器)、GPIOx_OTYPER(输出类型寄存器)、GPIOx_OSPEEDR(输出速度寄存器)、GPIOx_PUPDR(上下拉/复用功能选择寄存器)、以及GPIOx_AFRx(复用功能选择寄存器,对于复用功能而言)等寄存器来实现。虽然具体数字可能因不同的STM32系列和参考手册而略有不同,但一般而言,STM32的GPIO主要可以配置为以下八种(或类似)工作模式:

输入:

模拟输入(Analog Input):
在这种模式下,GPIO引脚被配置为模拟信号输入,用于连接模拟传感器或其他模拟信号源。此时,引脚上的模拟信号可以被ADC(模拟数字转换器)读取。
浮空输入(Floating Input):
浮空输入模式下,引脚处于高阻态,不连接内部上拉或下拉电阻。此时,引脚电平取决于外部电路条件,容易受到噪声影响。
上拉输入(Pull-up Input):
在上拉输入模式下,引脚内部连接了一个上拉电阻到高电平(通常为VDD)。当外部没有信号连接或信号为低电平时,引脚会被上拉到高电平。这有助于稳定输入信号,减少噪声干扰。
下拉输入(Pull-down Input):
与上拉输入相反,下拉输入模式下引脚内部连接了一个下拉电阻到低电平(通常为GND)。当外部没有信号连接或信号为高电平时,引脚会被下拉到低电平。
输出:

开漏输出(Open-Drain Output):
开漏输出模式下,引脚只能输出低电平或高阻态,无法直接输出高电平。当多个开漏输出的引脚连接到一起时,可以实现“线与”功能,即所有引脚都为高阻态时,输出电平由外部上拉电阻决定(外界上拉电阻可以输出高电平)。常用于I2C总线等。
开漏输出特性:利用外部电路驱动能力,实现电平转换,方便实现“逻辑与”功能。
开漏输出模式下,P-MOS管无效,N-MOS有效。
当输出数据寄存器写1,N-MOS断开,输出控制相当于断开,也就是高阻态(所以不能输出高电平)。
当输出数据寄存器写0,N-MOS导通,输出控制相当于接VSS,输出为低电平。
开漏输出模式下,只有低电平才有驱动能力,高电平无驱动能力,引脚只能输出低电平,可以作为通信协议的驱动方式比如I2C通信的引脚。
推挽输出(Push-Pull Output):
推挽输出模式下,引脚可以直接驱动外部负载,输出高电平或低电平。这种模式输出电流较大,适用于驱动LED、继电器等负载。
        在推挽输出模式下,P-MOS和N-MOS均有效。

当输出寄存器写1,上管导通,下管断开,输出控制接到VDD(电源),输出为高电平
当输出寄存器写0,上管断开,下管导通,输出控制接到VSS(地面或负极),输出为低电平。
复用功能(Alternate Function):
复用功能模式下,GPIO引脚被配置为执行特定的外设功能,如SPI、I2C、USART等通信接口的通信引脚。具体复用为哪种功能,通过配置GPIOx_AFRx寄存器来选择。
复用开漏输出(Alternate Function Open-Drain Output):
这种模式结合了复用功能和开漏输出的特点,引脚被配置为执行特定的外设功能,但输出方式为开漏输出。常用于需要开漏输出的外设接口,如I2C总线接口。
请注意,不是所有的STM32系列都严格遵循上述八种模式分类,但大多数STM32的GPIO都支持类似的功能。具体配置时,应参考具体的STM32系列参考手册。



GPIO的输出速度

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

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

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

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

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

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

简单外设,比如LED灯,蜂鸣器建议使用2MHZ的输出速度

而复用为IIC,SPI等通信信号时,建议使用10MHZ或50MHZ以提高响应速度。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/2302_81386929/article/details/141279052

使用特权

评论回复
沙发
呐咯密密| | 2024-9-3 11:04 | 只看该作者
GPIO是第一个需要掌握的外设

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1923

主题

15596

帖子

11

粉丝