嗨,对话框
在我们的开发中,我们使用了一个键盘扫描模块和一个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
}
但它仍然不能解决问题。应该做什么来解决这个问题。或者我们能区分触发唤醒中断的引脚吗?
⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//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行,看看是否符合您的要求。
你好,主持人
在注释了你上面提到的代码后问题仍然出现,设备进入延长睡眠模式后密钥扫描模块没有工作。