为啥进入低功耗的时候,需要将GPIO引脚配置成模拟输入,而不是其他的。
主要原因:
1.gpio输出,无论是推挽输出,开漏输出,上拉/下拉,都会有穿通电流,在VCC和VSS之间形成一个穿通电流,增加功耗。
2.gpio输入,内部上拉/下拉输入,也是存在穿通电流,浮空输入,会经过施密特,进入输入数据寄存器。
因此,只有模拟输入,电阻最大,漏电最小。
| 模式 | 数字输入缓冲 | 上下拉 | 静态漏电 | 说明 |
|---|---|---|---|---|
| 浮空输入 | 使能 | 关闭 | 很大 | 电压不定,易停在中间,穿通电流大 |
| 上拉输入 | 使能 | 上拉 | 较小 | 电平固定为高,但外部拉低会耗电 |
| 下拉输入 | 使能 | 下拉 | 较小 | 电平固定为低,但外部拉高会耗电 |
| 推挽输出 | --- | --- | 取决于外部 | 输出与外部冲突时电流很大 |
| 模拟输入 | 断开 | 关闭 | 最小 | 高阻,无数字输入路径 |