问题概述
5V接入电路板后,经过分压直连到STM32的IO。STM32通过检测IO电平变化来识别5V是否接入。初始使用两个小阻值分压,功能正常。为了降低功耗,将分压电阻阻值放大十倍,结果无法识别到高电平。
问题原因
主要是没有考虑到芯片IO配置为上下拉时的内阻。
通常分压都是用作ADC采集,使用模拟输入。这时芯片IO禁用了上下拉:![在这里插入图片描述](https://img-blog.csdnimg.cn/20210608111319607.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ0NDg4NzU=,size_16,color_FFFFFF,t_70#pic_center)
而现在是分压后,使用中断识别高低电平变化,IO配置为上/下拉输入。这时外部电路就需要结合芯片IO内阻,来设计分压阻值。查看手册如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210608110016962.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ0NDg4NzU=,size_16,color_FFFFFF,t_70#pic_center)
同样是分压,数字输入和模拟输入还是有区别的,以后注意不要忽略。