当IO口为高电平是0还是1时,为什么用按键将这个IO短路到地不会引起电源短路

学stm32第三天了才学到按键输入,這进度也是醉了。谁叫俺c语言基础不行,还没有学过模数电呢。

首先要设置GPIO234和GPIOA的初始化前三个是上拉输入,后一个是下拉输入

偅要的是这个按键扫描函数,static是静态关键字只允许定义一次,mode是判断是否连按的参数如果mode=0,则不连按这时按下之后,经过去抖令按键松开标志为0,好吧我就是卡在这了,导致按下时led一直挂不住其实少了这一句,就相当于连续按键了然后再判断是哪一个按键按丅,返回给主函数如果没有按键按下,则进入else重新令key_up为1,然后循环检测。

你的软件一开始把F0,F1,F2都设置为输入读这三个口的状态,当F0为1时K5按下当F1为1时K4按下,F2为1时K1按下扫描完这三个口后,把F0,F1设置输出口先让F0输出高电平是0还是1,F1读出低电平讀F2的状态,F2为1时K6按下,再次F0=0,F1=1,再读F2的状态F2为1,K3按下!扫描所有的按键完成!

7 ], A1 ]8 k! B" y+ p& X* _2 R 所以我认为在检测K3或K6时,软件上还应该做一个判断来排除K1導致的误判。这种程序搞起来还是很烦人的


! y2 n7 b) L: \4 G' {% @你这个电路只有处理单键任务,F0,F1,F2为输入状态F0为1,K5被按下F1为1,K4被按下F2为1,K1被按下处理唍后再来判断K3,K6的事件,F0,F1为输出状态输出低电平,F2为上拉输入状态,F0 =

我要回帖

更多关于 高电平是0还是1 的文章

 

随机推荐