问题概述
5V接入电路板后,经过分压直连到STM32的IO。STM32通过检测IO电平变化来识别5V是否接入。初始使用两个小阻值分压,功能正常。为了降低功耗,将分压电阻阻值放大十倍,结果无法识别到高电平。
问题原因
主要是没有考虑到芯片IO配置为上下拉时的内阻。
通常分压都是用作ADC采集,使用模拟输入。这时芯片IO禁用了上下拉:
而现在是分压后,使用中断识别高低电平变化,IO配置为上/下拉输入。这时外部电路就需要结合芯片IO内阻,来设计分压阻值。查看手册如下:

同样是分压,数字输入和模拟输入还是有区别的,以后注意不要忽略。