接口使用方法
下文以I2C为例介绍GR551x接口使用,GR5526备份和恢复在Hal层实现,用户无需关注。
首先I2C模块初始化时,注册睡眠回调函数。
uint16_t app_i2c_init(app_i2c_params_t *p_params, app_i2c_evt_handler_t evt_handler)
{
if(s_sleep_cb_registered_flag == false)// register sleep callback
{
s_sleep_cb_registered_flag = true;
s_i2c_pwr_id = pwr_register_sleep_cb(&i2c_sleep_cb, APP_DRIVER_I2C_WAPEUP_
PRIORITY); /*注册睡眠回调函数*/
if (s_i2c_pwr_id < 0)
{
return APP_DRV_ERR_INVALID_PARAM;
}
}
}
回调函数实现:
static const app_sleep_callbacks_t i2c_sleep_cb =
{
.app_prepare_for_sleep = i2c_prepare_for_sleep, /*进入睡眠,保存现场
并配置i2c相关寄存器,进入低功耗模式*/
.app_sleep_canceled = i2c_sleep_canceled, /*取消睡眠状态,恢复相关寄存器*/
.app_wake_up_ind = i2c_wake_up_ind /*唤醒后,恢复i2c相关寄存器,激活
i2c模块 */
};