ESP 无线发射功率配置
BLE TX Power
ESP-IDF 中的 BLE 发射功率可以通过 esp_ble_tx_power_set 函数来手动调整。该函数允许为不同的传输类型设置不同的发射功率,例如广播、扫描和连接等模式。不同 ESP 芯片的 BLE 功率级别不一定相同,以 ESP32 为例,BLE 的功率级别范围从 ESP_PWR_LVL_N12 到 ESP_PWR_LVL_P9。
以下示例展示了使用 ESP32 如何将 BLE 的默认发射功率设置为最大 9 dBm:
#include "esp_gap_ble_api.h"
void set_ble_tx_power() {
esp_ble_tx_power_set(ESP_BLE_PWR_TYPE_DEFAULT, ESP_PWR_LVL_P9); // 设置最大 9 dBm 功率
}
ESP32 BLE 发射功率级别举例:
ESP_PWR_LVL_N12: -12 dBm
ESP_PWR_LVL_N9: -9 dBm
ESP_PWR_LVL_N6: -6 dBm
ESP_PWR_LVL_N3: -3 dBm
ESP_PWR_LVL_P0: 0 dBm
ESP_PWR_LVL_P3: 3 dBm
ESP_PWR_LVL_P6: 6 dBm
ESP_PWR_LVL_P9: 9 dBm (最大功率)
部分 BLE 发射功率类型举例:
ESP_BLE_PWR_TYPE_CONN_HDL0:第一个连接的发射功率
ESP_BLE_PWR_TYPE_CONN_HDL1:第二个连接的发射功率
ESP_BLE_PWR_TYPE_ADV:广播的发射功率
ESP_BLE_PWR_TYPE_SCAN:扫描的发射功率
ESP_BLE_PWR_TYPE_DEFAULT:默认的发射功率
一些 ESP 芯片也可以在 menuconfig 中配置最大 BLE 发射功率。
menuconfig 路径:Component config → Bluetooth → Controller Options → BLE default Tx power level
此外,对于支持 BLE 的新一代 ESP 芯片(如 ESP32-C2、ESP32-C5、ESP32-C6、ESP32-H2),更推荐使用 esp_ble_tx_power_set_enhanced API 来调整 BLE 的发射功率。