2.4G和5G位图说明列表,0xff也只是1-8号信道而已

根据你提供的 SDK 代码,0xFF 仅表示启用 1 到 8 号信道(即 2.4GHz 频段的信道)。这是因为每个 BIT(x) 是一个位标志,0xFF 在二进制中对应的是 11111111,即启用信道 1 至 8。

对于 5GHz 信道,你需要确保传输的 channel_bitmap 参数对应的是正确的信道范围。如果你要扫描或使用 5GHz 通道,应该使用适当的 BIT(x) 来表示需要启用的信道。例如,按照你的代码结构,启用 5GHz 的信道 36、40、44、48、52 等,可以参考以下方式:

5GHz 通道的设置

假设你想启用 5GHz 的 36、40、44 和 48 号通道,你可以这样设置:

复制代码
wifi_scan_config_t scan_cfg = {
    .ssid = NULL,
    .bssid = NULL,
    .channel = 0,
    .show_hidden = false,  // 显示隐藏网络
    .scan_type = WIFI_SCAN_TYPE_ACTIVE,  // 主动扫描
    .scan_time = {
        .active = {
            .min = 100,
            .max = 200
        }
    },
    .channel_bitmap = {
        .ghz_2_channels = 0xFF,  // 启用所有 2.4GHz 通道
        .ghz_5_channels = (WIFI_CHANNEL_36 | WIFI_CHANNEL_40 | WIFI_CHANNEL_44 | WIFI_CHANNEL_48)  // 启用 5GHz 通道 36、40、44、48
    }
};

在上面的代码中:

  • 0xFF 启用所有 2.4GHz 通道。

  • (WIFI_CHANNEL_36 | WIFI_CHANNEL_40 | WIFI_CHANNEL_44 | WIFI_CHANNEL_48) 启用 5GHz 通道 36、40、44 和 48。

错误排查

  • 如果你想启用 5GHz 更高的通道(如 100、104 等),需要将相应的位标志加到 channel_bitmap 中,如 WIFI_CHANNEL_100 | WIFI_CHANNEL_104 等。

  • 注意0xFF 仅适用于 2.4GHz 信道 1-8。若要启用更高的 5GHz 通道,你必须使用相应的位标志,如 WIFI_CHANNEL_36, WIFI_CHANNEL_40, 等。

如果你有进一步的疑问或问题,请提供更多细节,我会继续帮你排查!