

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