KDocs 研发资料库
  • 视频技术应用资料与文档入口汇总
  • Window下使用Makefile编译代码教程
  • AC52系列PWM使用说明文档
  • AC57系列PWM使用说明文档
  • 52 系列_串口外设的使用说明
  • 57 系列_串口外设的使用说明
  • AC52系列SPI使用说明文档
  • AC57系列SPI使用说明文档
  • AC52系列外部中断使用说明文档
  • AC57系列外部中断使用说明文档
  • AC54&56外部中断使用说明文档
  • AC52 红外捕获中断demo使用说明文档
  • 视频系列SDK汇总及获取方法
  • AC52系列软件典型问题整理文档获取
  • AC791N开发-入门到进阶开发指导文档(完善ing)
  • AC792N开发-入门到进阶开发指导文档(完善ing)
  • 792 littlefs文件系统配置
  • 792N系列 U盘单备份升级说明
  • 792x串口uart升级说明参考

AC792x按键消息流程

📎 原始文档:https://www.kdocs.cn/l/cdy1xoC4PcvB AC792x按键消息流程

  1. 按键的消息发出 按键消息的发出是在key_driver.c文件中下的key_driver_scan这个定时器回调中,只需要在board文件下配置好按键的外设后,这个定时器回调就会根据配置的IO去检测按键的状态,发出对应的按键消息。
    image

按键消息发送接口
image

设备按键的动作,常见的有按下(DOWN)、抬起(UP)、短按(CLICK)、长按(LONG)等,如下:
image

  1. 上面按键消息发出后,会传到lv_port_indev.c文件下的keypad_read函数中,如下: image

keypad_read函数跑完之后,按键消息就会传到LVGL UI中。
3、其中keypad_read函数下的ui_scr_key_event_handler函数是当前UI页面的按键事件处理回调的调用,如下:
··
image

在页面的key_onchange按键事件回调函数里面,若当前的按键消息被 return 0,则不会传到app_core,即不会传给video_photo之类的app模式中的按键事件回调;若是return 1,则会往下传到app_core中。
4、keypad_read函数中的lvgl_key_value_remap函数就是设备的按键消息对接LVGL的按键消息的映射,这个函数可以根据实际情况做修改,公版的如下:
image

因为设备的按键消息事件跟LVGL的不一样,这里就需要将设备的按键消息跟LVGL的按键消息对接映射起来,在UI工具中按键消息类型使用的是LVGL的按键消息类型,即lvgl_key_value_remap函数中映射后的按键消息类型。LVGL的按键消息类型如下:
image

  1. UI中添加按键执行动作 开发中若需要添加按下某个按键后,执行一个UI动作之类的功能。这种可以在UI工具中相应的控件里面打开焦点功能(开了焦点功能后才能聚焦,聚焦后就可以收到按键消息),然后再添加按键事件的回调,在回调里面做相应的UI动作。
    image

image

下面是其它按键消息类型的使用
image