嗨,对话框
在我们的开发中,我们使用了一个键盘扫描模块和一个用于捕获失败边缘计数的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码吗?
⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
星期四,2017-09-14说
#1
Gpio唤醒事件冲突
设备:
嗨提到,
你提到的行为是预期的设计。
也许你需要读回GPIO,无论是从单个GPIO生成的触发器还是在计算GPIO下降沿之前的键矩阵。
嗨,MH
是否可能不让键盘扫描模块触发唤醒中断?
嗨提到,
我认为需要在ad_keyboard_scanner.c中做一些修改来取消唤醒中断。请尝试先注释第243行到253行,看看它是否符合您的要求。
你好,主持人
在注释了上面提到的代码后,问题仍然存在,设备进入扩展睡眠模式后,keyscan模块没有工作。