nRF52x: устройство BLE Central и функция sd_ble_gap_scan_start |
![]() |
Добавил(а) microsin |
Пришлось разбираться с тем, почему после отключения BLE Central от периферийного устройства ток потребления у Central неожиданно возрастает до 5.6 мА. Оказалось все довольно просто. В примерах SDK устройство Central ведет себя так, что после отключения оно автоматически переходит в режим сканирования путем вызова функции sd_ble_gap_scan_start. Если этот вызов исключить, то ток потребления уменьшается до приемлемых значений - порядка 50 мкА. Функция sd_ble_gap_scan_start нужна только для обнаружения BLE-устройств в сети. Если заранее известен MAC-адрес целевого устройства BLE, то для установки связи функция sd_ble_gap_scan_start не нужна, и её вызов можно исключить. Это может быть важно для устройств, которым критично энергопотребление. uint32_t sd_ble_gap_scan_start (ble_gap_scan_params_t const * p_scan_params); Функция запускает сканирование сети BLE - поиск устройств в сети (GAP Discovery procedure, Observer Procedure). Генерируемые события: BLE_GAP_EVT_ADV_REPORT Получен пакет адвертайзинга (advertising packet) или пакет ответа на сканирование (scan response packet). Параметры функции: [in] p_scan_params Указатель на структуру с параметрами сканирования. Возвращаемые значения: NRF_SUCCESS Процедура сканирования успешно инициирована. uint32_t sd_ble_gap_scan_stop (void); Функция останавливает сканирование сети BLE. Возвращаемые значения: NRF_SUCCESS Процедура сканирования успешно остановлена.
|