蓝牙技术
直播中

李静

7年用户 981经验值
私信 关注
[问答]

CYW89820怎么关闭HIDOFF下GPIO作为唤醒源?

CYW89820 调用
wiced_sleep_enter_hid_off(10000, WICED_HAL_GPIO_PIN_UNUSED, WICED_GPIO_ACtiVE_HIGH)进入HIDOFF,

因为我计划在HIDOFF下周期唤醒,但设置的唤醒时间到后,查看wake up reason,会显示GPIO,通过
wiced_hal_gpio_get_pin_interrupt_status函数会看见有GPIO产生了interrupt,但唤醒后5s又显示因为POR复位,之后才稳定广播。

请问:1.怎么关闭HIDOFF下GPIO作为唤醒源?即如何关闭GPIO的interrupt?
2.此方式进HIDOFF之前和唤醒需要有什么特殊操作吗?例如进HIDOFF之前需要关闭哪些外设,唤醒后需要什么操作避免上诉的5s后显示POR复位?
3.对于EPDS模式,在void (*wiced_sleep_post_sleep_callback ) (wiced_bool_t restore_configuration)
函数中,什么情况下的唤醒restore_configuration是0,什么情况下的唤醒restore_configuration是1?

回帖(1)

niu!kf

2024-9-26 17:04:05
1. 要关闭HIDOFF下GPIO作为唤醒源,您需要禁用GPIO中断。以下是一些步骤:

   a. 首先,找到与GPIO中断相关的寄存器。这通常在数据手册或参考手册中找到。

   b. 读取当前的GPIO中断配置,并清除与唤醒源相关的位。

   c. 将修改后的配置写回寄存器。

   d. 确保在禁用GPIO中断后,不再有任何其他中断源触发唤醒。

2. 在进入HIDOFF之前和唤醒后,您可能需要执行以下操作:

   a. 在进入HIDOFF之前:

      i. 关闭不需要的外设,以降低功耗。

      ii. 确保所有需要的数据已经保存到非易失性存储器中。

      iii. 配置GPIO中断,以确保它们不会在HIDOFF期间触发唤醒。

   b. 在唤醒后:

      i. 重新初始化外设,确保它们正常工作。

      ii. 检查GPIO中断状态,确保它们没有被错误地触发。

      iii. 重新配置GPIO中断,以确保它们在需要时可以正确触发唤醒。

      iv. 如果需要,重新启动广播。

通过执行这些步骤,您应该能够关闭HIDOFF下GPIO作为唤醒源,并避免在唤醒后出现5秒的不稳定状态。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分