PWR驱动API描述
PWR驱动的API主要包括:
| API类别 | API名称 | 描述 |
|---|---|---|
| 控制 | hal_pwr_set_wakeup_condition() | 设置深度休眠的唤醒条件。 |
| hal_pwr_config_timer_wakeup() | 配置AON Sleep Timer的唤醒参数。 | |
| hal_pwr_config_ext_wakeup() | 配置AON GPIO的唤醒参数。 | |
| hal_pwr_set_comm_power() | 设置BLE Core和BLE Timer的电源状态。 | |
| hal_pwr_set_comm_mode() | 设置BLE Core和BLE Timer的模式。 | |
| hal_pwr_enter_chip_deepsleep() | 进入深度休眠。 | |
| hal_pwr_get_timer_current_value() | 获取当前定时器值。 | |
| hal_pwr_disable_ext_wakeup() | 禁止指定的AON GPIO唤醒系统 | |
| 中断处理及回调函数 | hal_pwr_sleep_timer_irq_handler() | SleepTimer中断处理函数。 |
| hal_pwr_sleep_timer_elapsed_callback() | SleepTimer中断回调函数。 |
下面章节将对各API进行详细描述。
hal_pwr_set_wakeup_condition
| 函数原型 | void hal_pwr_set_wakeup_condition(uint32_t condition) |
|---|---|
| 功能说明 | 设置深度休眠模式下的唤醒条件。 |
| 输入参数 |
condition:唤醒条件,该参数可以是下列值中的任意一个:
|
| 返回值 | 无 |
| 备注 |
hal_pwr_config_timer_wakeup
| 函数原型 | void hal_pwr_config_timer_wakeup(uint8_t timer_mode, uint32_t load_count) |
|---|---|
| 功能说明 | 设置深度休眠模式下用于唤醒MCU的AON SLEEP TIMER的计数值。 |
| 输入参数 |
timer_mode: Sleep timer的计数模式,该参数可以是下列值中的任意一个:
load_count:进入深度休眠后,唤醒MCU的时间计数值,取值范围为0 ~ 0xFFFFFFFFU。 |
| 返回值 | 无 |
| 备注 | 该API仅在唤醒条件包含AON TIMER时可用。 |
hal_pwr_config_ext_wakeup
| 函数原型 | void hal_pwr_config_ext_wakeup(uint32_t ext_wakeup_pinx, uint32_t ext_wakeup_type) |
|---|---|
| 功能说明 | 设置深度休眠模式下用于唤醒MCU的AON_GPIO的引脚及唤醒类型。 |
| 输入参数 |
ext_wakeup_pinx:唤醒MCU的AON_GPIO的引脚,该参数可以是下列值的组合:
ext_wakeup_type:唤醒MCU的AON_GPIO的唤醒类型,该参数可以是下列值中的任意一个:
|
| 返回值 | 无 |
| 备注 | 该API仅在唤醒条件包含AON GPIO时可用。 |
hal_pwr_set_comm_power
| 函数原型 |
void hal_pwr_set_comm_power(uint32_t timer_power_state, uint32_t core_power_state) |
|---|---|
| 功能说明 |
设置BLE Core和BLE Timer的电源状态。 |
| 输入参数 |
timer_power_state:BLE Timer的电源状态,该参数可以是下列值中的任意一个:
core_power_state:BLE Core的电源状态,该参数可以是下列值中的任意一个:
|
| 返回值 |
无 |
| 备注 |
如果需要使用BLE功能,则需要在MCU启动后设置BLE Core和BLE Timer的电源状态为上电状态。 |
hal_pwr_set_comm_mode
| 函数原型 | void hal_pwr_set_comm_mode(uint32_t timer_mode, uint32_t core_mode) |
|---|---|
| 功能说明 | 设置BLE Core和BLE Timer的模式。 |
| 输入参数 |
timer_mode:BLE Timer的模式,该参数可以是下列值中的任意一个:
core_mode:BLE Core的模式,该参数可以是下列值中的任意一个
|
| 返回值 | 无 |
| 备注 | 如果需要使用BLE功能,则需要在BLE Core和BLE Timer上电后设置其为运行模式。 |
hal_pwr_enter_chip_deepsleep
| 函数原型 | void hal_pwr_enter_chip_deepsleep(void) |
|---|---|
| 功能说明 | 设置MCU进入深度休眠模式,并设置深度休眠模式下需要保持的内存块及唤醒后需要满电的内存块。 |
| 输入参数 | 无 |
| 返回值 | 无 |
| 备注 | 无 |
hal_pwr_get_timer_current_value
| 函数原型 | hal_status_t hal_pwr_get_timer_current_value(uint32_t timer_type, uint32_t *p_value) |
|---|---|
| 功能说明 | 获取当前计数器数值。 |
| 输入参数 |
timer_type:计数器类型,该参数可以是下列值中的任意一个:
P_value:内存指针,该参数由开发者指定 |
| 返回值 | HAL状态。 |
| 备注 | 该接口可获取当前计数器数值。 |
hal_pwr_disable_ext_wakeup
| 函数原型 | void hal_pwr_disable_ext_wakeup(uint32_t disable_wakeup_pinx); |
|---|---|
| 功能说明 | 禁止指定的AON GPIO唤醒系统。 |
| 输入参数 |
disable_wakeup_pinx:特定的AON GPIO pin脚,该参数可以是下列值中的任意一个:
|
| 返回值 | 无 |
| 备注 | 无 |
hal_pwr_sleep_timer_irq_handler
| 函数原型 | void hal_pwr_sleep_timer_irq_handler(void) |
|---|---|
| 功能说明 | 处理PWR Sleep Timer中断请求。 |
| 输入参数 | 无 |
| 返回值 | 无 |
| 备注 |
hal_pwr_sleep_timer_elapsed_callback
| 函数原型 | void hal_pwr_sleep_timer_elapsed_callback(void) |
|---|---|
| 功能说明 | Sleep Timer中断回调函数。 |
| 输入参数 | 无 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。 |