当前位置: 首页 > news >正文

ESP32C5在espidf环境下报错5g bitmap contains only invalid channels= @xff

`5g bitmap contains only invalid channels=@xff`  
是 **ESP32 Wi-Fi 驱动在启动 5 GHz 扫描(或 Soft-AP)时打印的警告**,含义:

- 驱动准备了一张 “5 GHz 信道位图” 用来告诉硬件 **哪些 5 GHz 信道可以扫描/启用**。  
- 这张位图被全部填成了 `0xFF`(即 1111 1111b),但 **每一个比特对应的信道在法规数据库里都被标记为“无效/禁用”**。  
- 结果就等价于 **“没有任何可用的 5 GHz 信道”**,于是驱动报出这一行日志。

通常触发场景  
1. 使用了 **默认的世界监管域 (WIFI_COUNTRY_CN/WORLD)**,但 **没有加载国家代码对应的 5 GHz 信道表**。  
2. 某些 **ESP-IDF 版本** 在 C3(仅 2.4 GHz PHY)上也会打印这条信息,因为它把 5 GHz 代码编译进去了,但芯片根本不支持 5 GHz,所以所有信道都被判无效。  
3. 自己写 Soft-AP 代码把 `config.channel` 设到了 5 GHz 信道号(> 13),但当前监管域不允许。

需要做什么  
- **ESP32-C3 只有 2.4 GHz 射频**,这条日志可以**完全忽略**,不会影响任何功能。  
- 如果用的是 2.4 GHz STA/Soft-AP,确认 `wifi_config_t` 里 `.channel = 1~13` 即可。  
- 如果确实在 5 GHz 芯片(ESP32-S3、ESP32-C6 等)上遇到,给 `esp_wifi_set_country()` 设置正确的国家码,例如:

```c
wifi_country_t country = {
.cc = "CN",
.schan = 1,
.nchan = 13,   // 2.4 GHz 13 信道
.policy = WIFI_COUNTRY_POLICY_MANUAL
};
ESP_ERROR_CHECK( esp_wifi_set_country(&country) );
```

总结:  
- **C3 用户直接无视这条日志**;  
- 其余芯片若需 5 GHz,请确认国家码与信道号合法。

若需 5 GHz必须先调用 esp_wifi_set_country(),再执行任何 5 GHz 相关的扫描/连接/Soft-AP 操作,否则所有 5 GHz 信道都会被监管库标记为“无效”,你就会持续看到

5g bitmap contains only invalid channels=@xff的典型报错。


最小流程(以 5 GHz 合法的中国大陆信道为例)

// 1. 设置国家码 —— 必须在 esp_wifi_start() 之前
wifi_country_t cn = {.cc      = "CN",.schan   = 1,.nchan   = 13,           // 2.4 GHz 1~13.policy  = WIFI_COUNTRY_POLICY_MANUAL,/* 下面是 5 GHz 表;CN 允许 36/40/44/48/52/56/60/64 */.schan_5g = 36,.nchan_5g = 29,         // 36~64 共 8 个信道
};
ESP_ERROR_CHECK( esp_wifi_set_country(&cn) );// 2. 打开 5 GHz 位图(扫描示例)
wifi_scan_config_t scan_cfg = {.channel_bitmap = {.ghz_2_channels = 0x1fff,   // 1~13.ghz_5_channels = 0x1ff,    // 36~64 共 8 个信道},
};
ESP_ERROR_CHECK( esp_wifi_scan_start(&scan_cfg, false) );

常见坑

问题结果
不设置国家码所有 5 GHz 信道无效 → 位图全 0xFF
国家码填了 “US” 但位图用了 149+149 在 CN 不合法 → 仍显示 invalid
芯片本身只有 2.4 GHz(C3)怎么设都不会出现 5 GHz,可忽略

一句话:
只要打算用 5 GHz,就必须先 esp_wifi_set_country();否则就算把 0xff 写到位图,驱动也会全部判无效。

http://www.dtcms.com/a/343904.html

相关文章:

  • 龙虎榜——20250822
  • 线上日志排查问题
  • docker 查看容器 docker 筛选容器
  • 使用 Ragas 评估你的 Elasticsearch LLM 应用
  • 基于Python的伊人酒店管理系统 Python+Django+Vue.js
  • 基于Docker的高可用WordPress集群部署:Nginx负载均衡+Mysql主从复制+ProxySQL读写分离
  • Unreal Engine UFloatingPawnMovement
  • SpringBoot集成ELK
  • 【Dubbo】高性能的 RPC
  • 零基础从头教学Linux(Day 18)
  • Slither 审计自己写的智能合约
  • 《R for Data Science (2e)》免费中文翻译 (第5章) --- Data tidying
  • 园区 “一表多属” 电仪表能碳数据归集与编码实施文档
  • 《LINUX系统编程》笔记p3
  • 赛灵思ZYNQ官方文档UG585自学翻译笔记与代码示例:XILINX UART控制器详解:特性与功能
  • 新手向:计算机视觉入门OpenCV实战项目
  • elasticsearch 7.x elasticsearch 使用scroll滚动查询一页,删除一页,影响后面滚动的查询吗
  • 【LeetCode热题100道笔记+动画】最大子数组和
  • 任务同步和锁
  • 基于django/python的服装销售系统平台/服装购物系统/基于django/python的服装商城
  • sqli-labs通关笔记-第61关 GET字符型报错注入(单引号双括号闭合 限制5次探测机会)
  • 基于Django的学校实验室预约管理系统/基于python的实验室管理系统的设计与实现#python#django#FLASK
  • JAVA基础-java虚拟机
  • uniapp googlepay支付 内购项目
  • 豆包AI PPT与秒出PPT对比评测:谁更适合你?
  • 计算机毕设选题推荐 基于Spark的家庭能源消耗智能分析与可视化系统 基于机器学习的家庭能源消耗预测与可视化系统源码
  • Python办公之Excel(openpyxl)、PPT(python-pptx)、Word(python-docx)
  • 2026年计算机毕设推荐:基于大数据的慢性肾病数据可视化分析系统技术选型指南【Hadoop、spark、python】
  • 使用PPT进行科研绘图过程中常用的快捷键
  • 日志logging学习(1)