一开始写完代码发现现象不对,以为是代码错了,然后跟原子哥的代码对比之后发现只有key_scan那里的入口参数不一样,然后调整了发现入口参数只有为0的时候才能触发。但是按照理论分析来说,入口参数为0代表不支持连按,所以连按的时候LED依旧会闪烁;而入口参数为1的时候支持连按,所以连按的时候相当于在一直喂狗,所以现象为常亮。
大致排除代码可能出现错误的情况之后,开始思考硬件连接,首先肯定得考虑屏幕这个大家伙,LED屏幕,然后看到了旁边的连针,马上想到之前在某实验中好像动过连针。于是看了看四个连针,想到wakeup按键连着的io口为PA0,一看,PA0确实通过连针和1820连着了。于是乎排查出了错误,果然是硬件连接上出现问题。这样来看,前几天的外部中断实验中,按wakeup键没反应的情况也就说得通了,当时还以为是这个按键坏掉了。
然后拔下屏幕再装上去却怎么也连不上电脑了。还重新装了驱动,还是不行。于是乎把屏幕取下再连,指示灯一下就亮了。这个时候才知道肯定是前面装屏幕的时候装到OLED 的口去了。
装回屏幕,分别测试支持连按和不支持连按,现象对应准确,实验成功。