[开发工具] 技术笔记 | 做低功耗设计时,STM32的GPIO应该怎么配置?

[复制链接]
1184|12
 楼主| 我想看大海 发表于 2022-7-12 11:33 | 显示全部楼层 |阅读模式

将未使用的GPIO输入配置为模拟输入

GPIO肯定有一个输入通道,可以是数字或模拟通道。 如果不需要读取GPIO数据,则优先配置为模拟输入。这节省了输入施密特触发器的消耗。
 楼主| 我想看大海 发表于 2022-7-12 11:35 | 显示全部楼层
调节GPIO速度

较低的GPIO速度可以实现更低的功耗。
上升时间,下降时间和最大频率可使用GPIOx_OSPEEDR配置寄存器进行配置。这种调整对 EMI(电磁干扰)和SSO(同时开关输出)有影响,因为开关电流峰值较高。因此必须平衡 GPIO性能与噪声。
每个GPIO信号的上升时间和下降时间必须适应与相关信号频率和电路板容性负载兼容的最小值。
 楼主| 我想看大海 发表于 2022-7-12 11:37 | 显示全部楼层
不使用时禁用GPIO寄存器时钟

如果某个GPIO组不需要长时间使用,请使用HAL_RCC_GPIOx_CLK_DISABLE()函数禁用其时 钟。
 楼主| 我想看大海 发表于 2022-7-12 11:37 | 显示全部楼层
进入低功耗模式时配置GPIO

进入低功耗模式时,所有引脚信号必须连接到VDD或接地。
如果GPIO连接到外部接收器(外部元件输入),则必须使用PP或PU/PD强制GPIO信号值。
当GPIO连接到驱动器(外部元件输出或总线)时,驱动器必须提供有效电平(VDD或接 地)。
如果未定义驱动器电平,则必须使用PU/PD强制GPIO上的信号。
出于实际原因,当GPIO是运行模式下的输入(模拟或数字)时,在低功耗模式下使用输入 PU/PD可能更容易;当GPIO是运行模式下的输出时,则使用输出PP。这可以避免在进入或 退出停止模式时管理更改。
 楼主| 我想看大海 发表于 2022-7-12 11:39 | 显示全部楼层
使用待机模式代替关机模式
当单片机退出关机模式时,GPIO会在上电复位时重新配置为默认值。在将它们重新编程为正确值之前,这会需要额外的系统消耗。
所以需要平衡关机模式和待机模式的功耗情况。进行功耗计算时,不能仅仅对比关机模式时的功耗情况,也需要关注从关机模式退出时消耗的电流。
在有必要时,可以使用待机模式替代关机模 式。
yiyigirl2014 发表于 2022-8-6 09:11 | 显示全部楼层
谢谢分享
Bblythe 发表于 2022-10-1 07:22 | 显示全部楼层

If-Else 已成为事实上的代码分支解决方案
Uriah 发表于 2022-10-1 17:22 | 显示全部楼层

它可以不受网络连接的限制
Bblythe 发表于 2023-1-20 07:22 | 显示全部楼层

许多开发人员从来没有前进到更合适的分支策略
童雨竹 发表于 2023-1-20 09:18 | 显示全部楼层

可以自己再声明一个自己喜欢的函数名
Wordsworth 发表于 2023-1-20 10:21 | 显示全部楼层

当端口P1.0输出高电平时,小灯D不亮
公羊子丹 发表于 2023-1-20 11:24 | 显示全部楼层

CPU从系统的主存中提取指令,然后解码该指令的实际内容,然后再由 CPU 的相关部分执行该指令。
公羊子丹 发表于 2023-1-20 12:17 | 显示全部楼层

被测产品的高速器件与实验室中参考地会形成一定的容性耦合,产生寄生电容,导致出现共模辐射,寄生电容越大,共模辐射越强
Wordsworth 发表于 2023-1-20 13:20 | 显示全部楼层

直接查看该脚的IDR位的电平
Uriah 发表于 2023-1-20 14:23 | 显示全部楼层

我本人非常喜欢 shell 脚本,因为它做事太简单粗暴了
万图 发表于 2023-1-20 16:19 | 显示全部楼层

等待该函数执行完成
Uriah 发表于 2023-1-20 17:22 | 显示全部楼层

程序开发人员做项目版本管理时的首选
帛灿灿 发表于 2023-1-20 19:18 | 显示全部楼层

采用多时钟源的方法来解决这些问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

282

帖子

0

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