读取按键返回的电平
当按下K1时,SIG所在线路与GND相连接,呈现出低电平;在K1断开时,SIG呈现高电平
![image-20221013141640629](https://saveimage-1312914322.cos.ap-nanjing.myqcloud.com/md/202210131416776.png)
我们通过按键,可以在一瞬间改变电平状态,而开发板也可以识别状态改变发生的瞬间,即``rising和
falling`——上升沿和下降沿,并对此做出响应,称之为“中断”
如果我们想要它在中断时运行一些函数(发生一些动作),则可以写“回调函数”,通过gpio_irq.on(函数名称)
来运行此函数
搭建Board.json文件
需要设置intMode
模式,识别他是上升沿(从低电平到高电平)还是下降沿(从高电平到低电平)
![image-20221013142659062](https://saveimage-1312914322.cos.ap-nanjing.myqcloud.com/md/202210131426102.png)
写回调函数
打印字符串,并打印串口的状态
def irq_handler(data):
global gpio_read
print("key is coming!")#当中断后,调用本函数,并打印此行
print(gpio_read.read())#由于'intMode'=falling,即为下降沿时候读数,返回低电平状态0
写主函数
if __name__=="__main__":
thimes=10
gpio_read=GPIO()
gpio_read.open("GPIO23")
while(True):#一个while无限循环,打印读值的状态,在没有任何操作的时候,读到的值都为0
ret=gpio_read.read()
print(ret)
utime.sleep(5)
gpio_read.on(irq_handler)#按下按键进行中断,启用中断函数
将点亮LED灯与按键进行结合
# def irq_handler(data):
# bright_led=GPIO()
# print("key is coming!")
# print(gpio_read.read())
# bright_led.open("led_r")
# bright_led.write(1)
# utime.sleep_ms(5000)
# bright_led.write(0)
# bright_led.close()
# if __name__=="__main__":
# gpio_read=GPIO()
# gpio_read.open("GPIO23")
# while(True):
# ret=gpio_read.read()
# print(ret)
# utime.sleep(5)
# gpio_read.on(irq_handler)
# utime.sleep_ms(50)
# gpio_read.close()