拜托了!!!请问当当一个按键按下,例如PB5,内核如何知道有人按了按键,也就是如何知道应该去轮询读输入寄存器的值?arm是分配了中断,这个芯片就注册一个任务就OK不用管了?
热门产品 :
CH32L103: 32位PDUSB低功耗单片机
拜托了!!!请问当当一个按键按下,例如PB5,内核如何知道有人按了按键,也就是如何知道应该去轮询读输入寄存器的值?arm是分配了中断,这个芯片就注册一个任务就OK不用管了?
您好,TMOS系统中是启用一个事件去查询按键的,默认100ms查询一次。启用GPIO中断也可以,PM例程中就有GPIO中断的应用,查询代码需要自行添加。
启用按键查询,先要在工程配置中添加HAL_KEY,以及确保KEY.c添加进编译。
然后添加按键处理函数,函数名自拟,但是形参须为(uint8_t keys),调用HalKeyConfig函数注册一下。
这样默认代码中配置好了PB22和PB4两个按键,如上图添加,评估板上用PB4作为按键,就已经可以跑起来。如果需要更多按键,可以如下图添加处理,下图中添加到了总计5个按键,可以添加B组引脚,也可以添加A组引脚。
在KEY.c中需要做如下修改。
在KEY.h中需要做如下修改。
打印如下,支持同时检测多个按键按下。