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
, 等。
如果你有进一步的疑问或问题,请提供更多细节,我会继续帮你排查!