stm32如何检测30个开关的输入

2019-07-21 08:39发布

想用STM32的IO口检测30个电源开关是否被按下。
这些开关都控制着3.3V电压输出,没按下时,开关没有输出,按下时,开关输出3.3V。

我想把IO口设置为下拉输入,接到开关的3.3V输出上。这样可以检测按键是否按下。


但是,测试时发现,对一个IO口设置为下拉输入,那么3.3V接到这个IO口时,由3.3V流向单片机该引脚的电流为8ma左右。
如果按照这个电流值计算的话,那么30个IO口就会有240ma电流。
而STM32输入灌电流是不允许这么大的。

网上说,stm32内置的上下拉电阻典型值都是40K,

所以说,我这种检测方式是不可行的?
有没有其他更好的方法呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。