一. 初始化设置
hal_gpio_pin_init(P17, GPIO_OUTPUT);
hal_gpio_write(P17, 1);
当GPIO配置GPIO输出时,当系统休眠后,GPIO输出信息将会丢失。如果想在系统休眠后,仍保持GPIO输出状态并保持输出的高低电平,需要使用GPIO retention功能。
hal_gpioretention_register(P17); //休眠后仍保持;
hal_gpio_write(P17, 1);
二. 设置中断
// 配置P16(hallSensor)为输入模式并注册回调函数
hal_gpio_pin_init(P16, IE);
hal_gpio_pull_set(P16, GPIO_PULL_UP);
hal_gpioin_register(P16, p16_gpio_callback, p16_gpio_callback);
三.中断唤醒函数
// 回调函数,用于处理P16电平变化(hallSensor)
void p16_gpio_callback(gpio_pin_e pin, gpio_polarity_e type)
{
LOG("P16 GPIO event: pin=%d, type=%d\n", pin, type);
// 退出睡眠模式
LOG("Exiting sleep mode...\n");
hal_pwrmgr_wakeup_process();
}