一. 硬件介绍
ESP32-C3FH4 是乐鑫科技推出的一款低功耗、高性能的 MCU 系统级芯片(SoC),集成了 Wi-Fi 和低功耗蓝牙功能,适用于物联网(IoT)应用,其主要特性如下:
- 处理器:采用单核 32 位 RISC-V 处理器,主频最高可达 160MHz,支持 8 位、16 位和 32 位指令集。
- 存储配置:内置 400KB SRAM 用于数据和指令存储,384KB ROM 用于启动和核心功能,4MB 嵌入式 Flash(FH4 即表示 4MB Flash),还有 8KB RTC SRAM 在低功耗模式下可用。
- 无线连接:Wi-Fi 方面,支持 IEEE 802.11 b/g/n(2.4GHz),数据速率最高 150Mbps,支持 Station、SoftAP 和 Station + SoftAP 模式,采用 1T1R(1 个发射,1 个接收)架构;蓝牙方面,支持 Bluetooth Low Energy(BLE)5.0,支持 BLE Mesh,数据速率最高 2Mbps。
- 安全性能:支持 AES、SHA、RSA 等多种加密算法,具备安全启动和 Flash 加密功能,可保障物联网设备的数据安全。
- 功耗表现:深度睡眠模式下电流仅 5μA,Wi-Fi 发射时电流约 300mA,Modem-sleep 模式下为 15mA(Wi-Fi 开启,CPU 运行),低功耗特性适合电池供电设备。
- 工作温度:工作温度范围为 -40°C 至 +125°C,能适应各种严苛环境。
- 封装形式:采用 QFN32(5×5mm)紧凑封装,节省电路板空间。
- 通信接口:具备丰富的接口,包括 GPIO、I2C、I2S、SPI、JTAG、UART、USB 等,可方便连接各种外设。
- 应用领域:广泛应用于智能家居、工业物联网、消费电子等领域,如智能照明控制系统、工业传感器数据采集、可穿戴设备等。
本模块正是使用 ESP32-C3FH4 芯片设计的支持 WiFi-蓝牙的多功能模块,其核心功能是将无线信号转为串口信号,方便连接到 MCU 或 FPGA 上使用。其电路原理图和 PCB 布局图如下所示:


可以看到,模块尺寸小巧(12.3mm × 19.1mm),非常适合 SMT 集成到用户的自有设计中。除了使用预置的 AT 指令固件,也支持提供源码进行二次开发,以便添加自定义功能。
二. AT 指令使用
在使用 AT 指令前,请注意状态指示灯的反馈:所有 AT 命令发送执行成功后,状态指示灯会闪一下。发送或执行失败后,状态指示灯会闪 10 下。这为你快速判断指令执行情况提供了直观依据。
1. 连接 XBOX 蓝牙手柄
首先,你需要获取 Xbox 手柄的蓝牙地址。将手柄连接到电脑,然后在 Windows 的设备管理器中查看其蓝牙设备属性。

如图,手柄的蓝牙地址为 14cb65fcee25e。接着,通过串口依次发送以下三条 AT 指令:
- 设置手柄地址(注意格式):
AT+XBOX_MAC=14:cb:65:fc:e2:5e
- 复位模块:
AT+RESET=1
- 使能 XBOX 模式:
AT+XBOX=ENABLE
将 XBOX 手柄切换到配对模式,模块会自动与其完成配对。配对成功后,模块会以固定频率通过串口输出 28 字节的手柄状态信息,格式为:XBOX: [28字节数据] OVER!。
数据解析顺序如下(每个按键/摇杆对应1字节,除非另有说明):
btnY, btnX, btnB, btnA
btnLB, btnRB, btnSelect, btnStart
btnXbox, btnShare, btnLS, btnRS
btnDirUp, btnDirRight, btnDirDown, btnDirLeft
joyLHori (2字节), joyLVert (2字节)
joyRHori (2字节), joyRVert (2字节)
trigLTt (2字节), trigRTt (2字节)
2. 连接热点(STA 模式)
首先,需要将模块的 WiFi 模式设置为 STA(站点)模式。通过串口发送指令:AT+MODE=STA。模块会回显指令并反馈设置结果。

模式设置成功后,就可以连接目标 WiFi 热点了。使用命令 AT+CWJAP=WiFi名称,WiFi密码。连接成功后会反馈模块获取到的 IP 地址。

3. 作为热点(AP 模式)
你也可以让模块自己创建一个 WiFi 热点。首先设置模式为 AP:AT+MODE=AP。
然后,设置热点的名称和密码:AT+FSTA=热点名称,连接密码。开启成功后,模块会反馈其作为热点的 IP 地址(通常是 192.168.4.1)。

设置完成后,用电脑或手机就能搜索并连接到这个热点了。

4. UDP 通信
在模块成功连接 WiFi(STA 模式)或开启热点(AP 模式)后,即可进行网络通信。首先开启 UDP 服务,指令为 AT+UDP=端口号,例如 AT+UDP=8888。开启成功后,模块会进入数据透传模式,并反馈其 IP 地址。

在电脑上打开网络调试助手(如 ZLAN 调试工具),工作模式选择 UDP,填写模块的 IP 地址和刚才设置的端口号。

设置完成后,即可进行双向透传测试:从网络助手发送的数据会通过串口输出;从串口发送的数据也会通过网络 UDP 包发送出去。

5. 连接 TCP 服务器通信
模块可以作为 TCP 客户端,连接到指定的服务器。连接指令为 AT+TCPClient=服务器IP地址,服务器端口,例如 AT+TCPClient=192.168.1.179,8080。
注意:执行此命令前,请确保目标 IP 和端口上的 TCP 服务器已开启,否则连接会失败。

连接成功后,模块同样进入数据透传状态。此时,模块串口与 TCP 服务器之间的数据可以互相转发。

6. 作为 TCP 服务器与客户端通信
模块也可以作为 TCP 服务器,等待其他客户端连接。设置指令为 AT+TCPServer=1。模块会返回其作为服务器的 IP 地址和监听的端口号。

随后,模块进入监听和透传状态。此时,可以用网络调试助手以 TCP 客户端模式连接模块的 IP 和端口,进行数据传输测试。

7. BLE 蓝牙通信
除了 WiFi 和 XBOX 专用协议,模块也支持标准的 BLE 透传。首先通过指令设置蓝牙名称:AT+BLE=蓝牙名称,例如 AT+BLE=ESP32C3_BLE。

设置完成后,使用手机上的 BLE 调试 APP(如 LightBlue)即可搜索并连接到该蓝牙设备。

连接后,找到可读写的特征值(Characteristic),即可与模块进行数据透传。向特征值写入数据,数据会从模块串口输出;从串口输入数据,则可以在 APP 中读取到。


总结
以上便是这款基于 ESP32-C3 的 WiFi-蓝牙模块的主要功能演示,涵盖了从游戏手柄控制、无线网络连接到多种协议的数据透传。其小巧的尺寸和丰富的接口,使其非常适用于四驱车、平衡车、远程控制器等需要无线通信的嵌入式项目。对于物联网开发者和硬件爱好者而言,这无疑是一个功能强大且易于集成的解决方案。
欢迎在 云栈社区 交流更多关于嵌入式开发和无线通信技术的实践心得。