Gpio唤醒事件冲突

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
5个职位/ 0个新职位
最后发表
提到
离线
最后看到:4天7小时前
加入:2017-05-12 04:18
Gpio唤醒事件冲突

嗨,对话框
在我们的开发中,我们使用了一个键盘扫描模块和一个用于捕获失败边缘计数的gpio管脚。
使用ad_kbscn_init()函数配置的键盘扫描模块,
而gpio引脚配置如下:

hw_gpio_set_pin_function (HW_GPIO_PORT_1 HW_GPIO_PIN_7 HW_GPIO_MODE_INPUT_PULLUP,
HW_GPIO_FUNC_GPIO);
hw_wkup_init(空);
hw_wkup_set_debounce_time (0);
hw_wkup_set_counter_threshold (1);
hw_wkup_set_pin_trigger (HW_GPIO_PORT_1 HW_GPIO_PIN_7 HW_WKUP_PIN_STATE_LOW);
hw_wkup_register_interrupt (wkup_handler configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY);

而唤醒中断功能为:
空白wkup_handler(空白)

hw_wkup_reset_interrupt ();
enter_wkup_cnt + +;

键盘扫描模块和gpio捕获失败边缘可以单独工作。但是如果我们在gpio捕获失败边缘时按下矩阵键,变量“enter_wkup_cnt”将比通常大。似乎按下这个键也会触发唤醒中断并执行“enter_wkup_cnt++;”。
在开始gpio失败边缘捕获之前,我添加了禁用矩阵键脚唤醒功能的代码:

// hw_wkup_set_pin_state(HW_GPIO_PORT_4,HW_GPIO_PIN_4,false)
hw_wkup_set_pin_state (HW_GPIO_PORT_4 HW_GPIO_PIN_5,假);/ /柱销2
hw_wkup_set_pin_state (HW_GPIO_PORT_4 HW_GPIO_PIN_6,假);/ /行针1
hw_wkup_set_pin_state (HW_GPIO_PORT_4 HW_GPIO_PIN_7,假);/ /行针2

但这仍然不能解决问题。对于这个问题应该怎么办?或者我们能区分触发唤醒中断的pin码吗?

设备:
MH_Dialog(未验证)
嗨提到,

嗨提到,

你提到的行为是预期的设计。

也许你需要读回GPIO,无论是从单个GPIO生成的触发器还是在计算GPIO下降沿之前的键矩阵。

提到
离线
最后看到:4天7小时前
加入:2017-05-12 04:18
嗨,MH

嗨,MH
是否可能不让键盘扫描模块触发唤醒中断?

MH_Dialog(未验证)
嗨提到,

嗨提到,

我认为需要在ad_keyboard_scanner.c中做一些修改来取消唤醒中断。请尝试先注释第243行到253行,看看它是否符合您的要求。

提到
离线
最后看到:4天7小时前
加入:2017-05-12 04:18
你好,主持人

你好,主持人
在注释了上面提到的代码后,问题仍然存在,设备进入扩展睡眠模式后,keyscan模块没有工作。