[其他ST产品] STM32G0x0系列-点亮一盏灯(寄存器)

[复制链接]
1684|30
 楼主| 尽快回复过 发表于 2023-11-29 13:27 | 显示全部楼层 |阅读模式
输入功能浮空输入:通俗讲就是让管脚什么都不接,悬空着。
553726566cbaa559c0.png

此时VDD和VSS所在路径的两个开关同时断开。因为没有上拉和下拉,所以当IO口没有接输入的时候,此时的电平状态会是一个不确定的值,完全由外部输入决定。(一般实际运用时,引脚不建议悬空,易受干扰。 )

优势:这一种输入模式的电平会完全取决于外部电路而与内部电路无关

缺点:在没有外部电路接入的时候,IO脚浮空会使得电平不确定

应用:该模式是STM32复位之后的默认模式,一般用作对开关按键的读取或用于标准的通讯协议,比如IIC、USART的等


 楼主| 尽快回复过 发表于 2023-11-29 13:27 | 显示全部楼层
上拉输入
IO端口 - 上拉电阻 - 施密特触发器 - 输入数据寄存器 - 读
37316566cbce58a4c.png
输入的电平不会因上下浮动而导致输入信号不稳定,当外部没有信号输入时,上拉电阻会将输入信号钳在高电平,此时引脚始终读到高电平信号。
 楼主| 尽快回复过 发表于 2023-11-29 13:28 | 显示全部楼层
下拉输入
IO端口 - 下拉电阻 - 施密特触发器 - 输入数据寄存器 - 读

22836566cbf1c6d48.png

输入的电平不会因上下浮动而导致输入信号不稳定,当外部没有信号输入时,下拉电阻会将输入信号钳在低电平,此时引脚始终读到低电平信号。
 楼主| 尽快回复过 发表于 2023-11-29 13:28 | 显示全部楼层
模拟输入
未经任何处理的信号
954246566cc037c390.png
信号进入后不经过上拉电阻或者下拉电阻,关闭施密特触发器,经由另一线路把电压信号传送到片上外设模块。 所以可以理解为模拟输入的信号是未经处理的信号,是原汁原味的信号。

应用:当 GPIO 引脚用于 ADC 采集电压的输入通道时,则需要选择“模拟输入”功能,因为经过施密特触发器后信号只有 0、1 两种状态,所以 ADC 外设要采集到原始的模拟信号,信号源输入必须在施密特触发器之前。
 楼主| 尽快回复过 发表于 2023-11-29 13:29 | 显示全部楼层
输出功能
开漏输出
输出寄存器上的'0'激活 N-MOS,而输出寄存器上的'1'将端口置于高阻状态 (P-MOS 从不被激活 )。

无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。

可以利用改变上拉电源的电压来适应所需,进而提高外部电路的驱动能力。

102856566cc2828d9b.png

在推挽输出模式下,引脚可以提供两个状态的输出:高电平(Vcc)和低电平(GND)。
当引脚处于高电平状态时,它会提供一定的输出电流,以使外部设备工作在高电平逻辑状态。
当引脚处于低电平状态时,它会提供接近零的输出电压,以使外部设备工作在低电平逻辑状态。
推挽输出模式通常用于驱动主动电路(如LED、电机、显示器等),可以提供较高的驱动能力,适用于直接驱动大多数负载。
 楼主| 尽快回复过 发表于 2023-11-29 13:29 | 显示全部楼层
推挽输出
输出寄存器上的'0'激活 N-MOS,而输出寄存器上的'1'将激活 P-MOS,具备输出高低电平的能力。

当上面的MOS管导通时,GPIO输出高电平1,称为“推”。
922346566cc527c8de.png
 楼主| 尽快回复过 发表于 2023-11-29 13:30 | 显示全部楼层
当下面MOS管导通时,GPIO输出低电平0,称为“挽”。
89046566cc6a96bfc.png
 楼主| 尽快回复过 发表于 2023-11-29 13:30 | 显示全部楼层
在开漏输出模式下,引脚只提供低电平状态(GND)的输出。而在高电平状态时,引脚会断开,不提供输出电压。
在开漏模式下,引脚上有一个开漏晶体管,可以将引脚连接到GND,但不能将其连接到高电平(Vcc)。
为了使引脚达到高电平状态,需要通过外部上拉电阻将引脚连接到Vcc。当引脚处于开漏状态时,它不提供输出电流,而是允许外部电路或器件通过上拉电阻拉高电平。
开漏输出模式通常用于驱动被动电路(如信号线、总线等),可以实现多个开漏输出引脚的集线器功能,适用于需要共享总线或多点连接的情况。
 楼主| 尽快回复过 发表于 2023-11-29 13:31 | 显示全部楼层
相关寄存器
GPIOx_MODER 端口模式寄存器

418026566ccb662bf0.png
 楼主| 尽快回复过 发表于 2023-11-29 13:31 | 显示全部楼层
GPIOx_OTYPER 端口输出类型寄存器
217366566ccc2b8857.png
 楼主| 尽快回复过 发表于 2023-11-29 14:07 | 显示全部楼层
GPIOx_ OSPEEDR 端口输出速度寄存器 620086566d5229e810.png
 楼主| 尽快回复过 发表于 2023-11-29 14:08 | 显示全部楼层
GPIOx_PUPDR 上拉/下拉寄存器
892506566d53de6a7f.png
 楼主| 尽快回复过 发表于 2023-11-29 14:10 | 显示全部楼层
GPIOx_IDR 端口输入数据寄存器 746346566d5cb90ff8.png
 楼主| 尽快回复过 发表于 2023-11-29 14:10 | 显示全部楼层
GPIOx_ODR 端口输出数据寄存器 750636566d5da692f9.png
 楼主| 尽快回复过 发表于 2023-11-29 14:39 | 显示全部楼层
GPIOx_BSRR 置位 / 复位寄存器

457766566dc92d5c71.png
 楼主| 尽快回复过 发表于 2023-11-29 14:39 | 显示全部楼层
输出试验:点亮一盏灯
1.查看自己想要点亮的灯编号
769116566dca510ebb.png
 楼主| 尽快回复过 发表于 2023-11-29 14:39 | 显示全部楼层
2.对比电路原理图

550846566dcb5af705.png
 楼主| 尽快回复过 发表于 2023-11-29 14:40 | 显示全部楼层
 楼主| 尽快回复过 发表于 2023-11-29 14:40 | 显示全部楼层
 楼主| 尽快回复过 发表于 2023-11-29 14:40 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

599

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部