打印
[STM32F1]

STM32的IO口的8种配置详解

[复制链接]
299|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
louliana|  楼主 | 2024-7-26 08:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 STM32 IO口的8中配置方式解读(推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟)

  STM32 IO口的8中配置方式:
  (1)GPIO_Mode_AIN 模拟输入
(2)GPIO_Mode_IN_FLOATING 浮空输入

  (3)GPIO_Mode_IPD 下拉输入

  (4)GPIO_Mode_IPU 上拉输入

  (5)GPIO_Mode_Out_OD 开漏输出

  (6)GPIO_Mode_Out_PP 推挽输出

  (7)GPIO_Mode_AF_OD 复用开漏输出

  (8)GPIO_Mode_AF_PP 复用推挽输出

  I/O口的输出模式下。有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出驱动电路,用户能够依据自己的须要选择合适的驱动电路)。通过选择速度来选择不同的输出驱动模块。达到最佳的噪声 控制和减少功耗的目的。

  高频的驱动电路。噪声也高,当不须要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。

  当然假设要输出较高频率的信号,但却选用了较低频率的驱动模块。非常可能会得到失真的输出信号。

  关键是GPIO的引脚速度跟应用匹配(推荐10倍以上?)比方:

  1 、对于串口,假如最大波特率仅仅需115.2k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。

  2 、对于I2C接口。假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引脚速度也许不够,这时能够选用10M的GPIO引脚速度。

  3、 对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了。须要选用50M的GPIO的引脚速度。

  4、 GPIO口设为输入时。输出驱动电路与port是断开。所以输出速度配置无意义。

  5、在复位期间和刚复位后,复用功能未开启,I/Oport被配置成浮空输入模式。

  6、全部port都有外部中断能力。为了使用外部中断线,port必须配置成输入模式。

  7、GPIO口的配置具有上锁功能,当配置好GPIO口后,能够通过程序锁住配置组合,直到下次芯片复位才干解锁。

  8 、在STM32中怎样配置片内外设使用的IOport

  首先,一个外设经过 ①配置输入的时钟和 ②初始化后即被激活(开启);③假设使用该外设的输入输出管脚,则须要配置相应的GPIOport(否则该外设相应的输入输出管脚能够做普通GPIO管脚使用);④再对外设进行具体配置。

  相应到外设的输入输出功能有下述三种情况:
  一、外设相应的管脚为输出:须要依据外围电路的配置选择相应的管脚为复用功能的推挽输出或复用功能的开漏输出。

  二、外设相应的管脚为输入:则依据外围电路的配置能够选择浮空输入、带上拉输入或带下拉输入。

  三、ADC相应的管脚:配置管脚为模拟输入。

  假设把port配置成复用输出功能。则引脚和输出寄存器断开。并和片上外设的输出信号连接。将管脚配置成复用输出功能后,假设外设没有被激活,那么它的输出将不确定。

  3 通用IOport(GPIO)初始化:

  1 )GPIO初始化

  1、 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | B | C, ENABLE):使能APB2总线外设时钟

  2、 RCC_ APB2PeriphResetCmd (RCC_APB2Periph_GPIOA | B | C, DISABLE):释放GPIO复位

  2) 配置各个PINport(模拟输入_AIN、输入浮空_IN_FLOATING、输入上拉_IPU、输入下拉_IPD、开漏输出_OUT_OD、推挽式输出_OUT_PP、推挽式复用输出_AF_PP、开漏复用输出_AF_OD)

  3) GPIO初始化完毕

  推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源低定。

  推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

使用特权

评论回复
沙发
Bowclad| | 2024-7-26 10:19 | 只看该作者
不同的配置模式对应什么区别啊

使用特权

评论回复
板凳
慢动作| | 2024-7-27 15:09 | 只看该作者
在复位期间和刚复位后,复用功能未开启,I/Oport被配置成浮空输入模式。

使用特权

评论回复
地板
LOVEEVER| | 2024-7-28 11:29 | 只看该作者
推拉式输出级既提高电路的负载能力,又提高开关速度。

使用特权

评论回复
5
无法去污粉| | 2024-7-30 12:10 | 只看该作者
假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了。

使用特权

评论回复
6
4c1l| | 2024-8-31 22:57 | 只看该作者
将 GPIO 设置为模拟模式以确保引脚不会接收到数字信号干扰,并且模拟信号可以准确地传递给内部 ADC。

使用特权

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

本版积分规则

15

主题

1201

帖子

1

粉丝