

E104-BT02蓝牙模块的软件配置通过UART AT指令完成,核心要点:①默认配置、串口透传原理、AT指令使用、15条常用指令完整。蓝牙模块AT指令怎么发?进入AT模式的条件是什么?默认参数是多少?修改配置后怎么生效?等等配置应用问题是很多开发者头疼的问题。本文以E104-BT02 BLE蓝牙模块为例,从默认参数、透传原理到AT指令集和配置步骤,把软件配置的每个细节讲清楚,配合FAQ常见问题,照着做就能快速完成蓝牙模块配置。
E104-BT02蓝牙模块为即插即用型模块,出厂时已配置好默认参数。下表列出了模块的默认配置项,开发前请确认主控串口参数与模块默认配置匹配:
配置项 | 默认值 | 说明 |
UART波特率 | 19200bps | 主控串口必须匹配此波特率 |
UART格式 | 8N1(无校验,1停止位) | 8数据位、无校验位、1停止位 |
角色 | 从机(Slaver) | P14高电平或悬空时为从机 |
设备名 | E104-BT02 | 最多18字节ASCII字符 |
广播 | 开启,间隔1s | 从机模式下等待主机连接 |
MTU | 20字节 | 可配置范围20~128字节,下一次连接生效 |
数据输出指示 | 开启 | P03输出低电平表示模块正在发送串口数据 |
注意:如果模块之前被修改过配置,默认参数可能已经改变。如果不确定当前配置,可以发送<RESTORE>指令恢复出厂设置,所有参数将恢复为上表的默认值。恢复出厂设置后需要重新上电或复位才能生效。
串口透传(UART Transparent Transmission)是E104-BT02蓝牙模块最核心的功能。理解透传原理有助于排查通信问题和优化数据传输。
外部MCU通过UART向模块P05/MRX发送数据流,模块内部固件将串口数据封装为BLE GATT Write数据包,通过射频天线无线发送给已连接的BLE Central设备(如手机、平板、电脑)。
这个过程对用户完全透明——主控只需要像普通串口通信一样发送数据,模块自动完成BLE协议封装、数据分包、无线发送等所有工作。主控不需要了解BLE协议栈、GATT服务、UUID等细节。
蓝牙模块通过射频接收到BLE Central设备发送的Notify/Write数据后,将BLE数据包还原为原始串口数据流,通过P04/MTX引脚输出给MCU。
同样,这个过程对主控完全透明——主控只需要像普通串口通信一样接收数据,模块自动完成BLE数据接收、解包、协议解析等工作。数据方向表如下:
数据方向 | 模块引脚 | 主控连接方式 |
主控→ BLE(发送) | P05 / MRX | 主控TX → E104 P05(模块RX) |
BLE → 主控(接收) | P04 / MTX | E104 P04(模块TX)→ 主控RX |
数据有效指示 | P03 / APP | 低电平表示模块正在输出串口数据 |
连接状态指示 | P11 / STA | 低电平表示BLE已建立连接 |
蓝牙模块不解析、不修改用户数据内容,只完成"串口电信号 ↔ BLE无线数据"的双向协议转换,对用户数据完全透明。这意味着一下特点:
①、用户可以传输任意格式的数据(二进制、文本、自定义协议);
②、蓝牙模块不会在数据中插入额外的字节或头部;
③、数据的顺序和内容保持不变;
④、用户数据的完整性由上层协议保证(如果需要可靠传输,建议在应用层增加校验和重传机制)。
所有常用配置通过UART AT指令完成,并在配置成功后自动保存到模块内部Flash。执行AT指令前,必须满足以下三个条件:
①、蓝牙模块处于唤醒状态:P06/WKP引脚保持唤醒(低电平或根据具体唤醒逻辑),确保模块不处于睡眠模式。如果模块在睡眠中,AT指令无法响应。
②、将P00/MOD拉低:通过按键或主控GPIO将P00/MOD引脚拉到低电平,模块进入AT配置模式。P00/MOD高电平或悬空时为透传模式,此时发送AT指令会被当作普通数据透传出去,模块不会响应。
③、UART参数与模块当前配置匹配:默认19200bps、8N1。如果模块之前被修改过波特率,需要使用修改后的波特率发送AT指令。如果忘记了波特率,可以发送<RESTORE>恢复出厂设置(但需要在当前波特率下才能发送成功)。
AT指令统一使用<指令>格式,不附加CR、LF或CRLF。这一点和很多其他模块的AT指令不同(很多模块的AT指令需要加\r\n结尾),请特别注意。
例如:修改设备名为"MY_BLE",发送<NAMEMY_BLE>,不需要加回车换行。查询当前波特率,发送<COMBAUD>,模块会返回当前波特率值。
蓝牙模块配置完成后,释放P00/MOD引脚(恢复高电平或悬空),蓝牙模块退出AT配置模式,回到透传模式。修改的配置会自动保存到模块内部Flash,掉电不丢失。部分配置(如波特率、MTU)需要下一次连接或重新上电后才能生效。
E104-BT02的AT指令配置有以下特点:
①自动保存:配置成功后自动保存到模块内部Flash,不需要额外的保存指令;
②掉电不丢失:保存的参数在模块掉电后不会丢失,重新上电后仍然有效;
③部分参数需重启生效:如波特率修改后,退出AT模式即生效,但主控端需要同步修改串口波特率;MTU修改后需要下一次BLE连接才能生效;
④恢复出厂:发送<RESTORE>指令可将所有参数恢复为出厂默认值,建议在配置混乱或忘记参数时使用。
下表列出了E104-BT02蓝牙模块最常用的15条AT指令,涵盖复位恢复、串口配置、设备名、广播、连接状态、MAC、MTU、低功耗、数据指示、密码等功能:
AT指令 | 功能作用 | 备注说明 |
<RESET> | 复位BLE协议栈 | 不等同于硬件RESET_H引脚复位 |
<RESTORE> | 恢复出厂参数 | 高影响操作,所有自定义配置将被清除 |
<BAUD19200> | 设置UART波特率 | 退出配置模式后生效,需同步修改主控串口参数 |
<COMBAUD> | 读取当前波特率 | 返回模块当前配置的波特率 |
<NAMExxx> | 设置设备名 | xxx为设备名,最多18字节ASCII字符 |
<MNAME> | 读取设备名 | 返回当前模块的蓝牙设备名 |
<ADVON> / <ADVOFF> | 开启/关闭广播 | 从机角色使用,控制是否可被扫描发现 |
<STATE> | 读取连接状态 | 返回当前BLE连接状态(已连接/未连接) |
<MAC> | 读取本地MAC地址 | 返回模块的十六进制蓝牙MAC地址 |
<DISCONNECT> | 断开当前连接 | 主动断开已建立的BLE连接 |
<MTUxxx> | 设置MTU大小 | xxx为20~128之间的数值,下一次连接生效 |
<COMWKPON> | 开启串口唤醒 | RX引脚下降沿可唤醒睡眠中的模块 |
<APPON> / <APPOFF> | 控制数据有效指示 | 开启/关闭P03引脚的数据有效输出功能 |
<PWDxxxxxx> | 设置空中配置认证密码 | 默认密码为123456,用于OTA空中配置时的身份验证 |
指令差异提示:AT指令手册、产品规格书和早期Specification文件来自不同历史版本,部分指令的格式和返回值可能存在差异。导入软件前应以实际固件回显为准,并记录固件版本号与异常返回情况。如果某条指令没有响应或返回异常,建议检查:①是否正确进入AT模式(P00/MOD是否拉低);②UART波特率和格式是否匹配;③指令格式是否正确(不加回车换行);④指令名称是否拼写正确。
步骤:
①保持P06/WKP为唤醒状态;
②将P00/MOD拉低,进入AT配置模式;
③通过UART发送<NAMExxx>(xxx为新设备名,最多18字节ASCII);
④模块返回确认表示配置成功,参数自动保存;
⑤释放P00/MOD回到透传模式,重新上电或复位后新设备名生效。也可以使用MicroPython驱动库的相应API完成配置。
步骤:
①进入AT配置模式(同上);
②发送<BAUDxxxxxx>(如<BAUD9600>、<BAUD115200>等);
③配置成功后自动保存;
④退出AT模式,新波特率立即生效;
⑤重要:主控端的UART波特率必须同步修改为新值,否则将无法通信。
如果忘记修改后的波特率,可以通过硬件复位或<RESTORE>指令恢复出厂设置(默认19200bps)。
步骤:
①进入AT配置模式;
②发送<MTUxxx>(xxx为20~128之间的数值,如<MTU100>);
③配置成功后自动保存;
④MTU修改后需要下一次BLE连接才能生效,当前连接不受影响;
⑤注意:MTU越大,单次传输的数据量越大,理论吞吐率越高,但也会增加内存占用和连接建立时间。
实际应用中需根据数据量大小和对端设备的MTU协商结果合理设置。
步骤:
①进入AT配置模式;
②发送<ADVON>开启广播,或<ADVOFF>关闭广播;
③配置成功后自动保存;
④从机模式下,广播开启时模块可被Central设备扫描发现并连接;广播关闭时模块不可被扫描,无法建立新连接(已建立的连接不受影响)。
⑤应用场景:在不需要连接时关闭广播可以降低功耗;在安全要求高的场景中,可以默认关闭广播,需要配网时再临时开启。
修改设备名需要进入AT配置模式:
①保持P06/WKP为唤醒状态;
②将P00/MOD拉低;
③通过UART发送AT指令<NAMExxx>(xxx为新设备名,最多18字节ASCII);
④配置成功后模块自动保存参数;
⑤释放P00/MOD回到透传模式,重新上电或复位后新设备名生效。也可以使用MicroPython驱动库的相应API完成配置。
注意:设备名只能使用ASCII字符,不支持中文,最多18个字符。如果设备名太长,可能会影响广播包的容量。
可以修改。默认波特率为19200bps,通过AT指令<BAUDxxxxxx>可设置为其他常用波特率(如9600、38400、57600、115200等)。
修改波特率后,退出配置模式即生效,但需要注意:
①主控端的UART波特率必须同步修改,否则将无法通信;
②如果忘记修改后的波特率,可以通过硬件复位或<RESTORE>指令恢复出厂设置(默认19200bps);
③波特率越高,数据传输速度越快,但对串口线的质量和长度要求也越高,建议在可靠的硬件环境下使用高波特率。
MTU(Maximum Transmission Unit,最大传输单元)是指BLE单次数据包可以传输的最大有效数据字节数。E104-BT02的MTU可配置范围为20~128字节,默认20字节。通过AT指令<MTUxxx>设置,下一次连接生效。
MTU对通信的影响有以下几点:
①MTU越大,单次传输的数据量越大,理论吞吐率越高;
②MTU越大,内存占用越多,连接建立时间可能越长;
③MTU需要与对端设备协商,最终使用的MTU是两端支持的最小值;
④如果应用层数据包较大,建议增大MTU以减少分包次数,提高传输效率;
⑤如果只是传输少量传感器数据(几个字节),默认20字节MTU已经足够。
AT指令没有响应是最常见的问题,按以下顺序排查:
①检查是否正确进入AT模式:P00/MOD引脚是否拉低?如果P00/MOD是高电平或悬空,模块处于透传模式,AT指令会被当作普通数据透传出去,模块不会响应;
②检查UART接线:MTX接主控RX,MRX接主控TX,交叉连接,不要接反;
③检查UART参数:波特率、数据位、校验位、停止位是否与模块当前配置匹配(默认19200 8N1);
④检查指令格式:AT指令使用<指令>格式,不要加回车换行(\r\n),这是很多新手容易犯的错误;
⑤检查模块是否唤醒:P06/WKP是否保持唤醒状态,如果模块在睡眠中,AT指令无法响应;
⑥检查模块是否损坏:如果以上都没问题,尝试硬件复位或恢复出厂设置,如果仍然无响应,可能是模块硬件损坏。
E104-BT02蓝牙模块的软件配置通过AT指令完成,核心要点有四点:
l 默认参数:波特率19200、8N1、从机模式、设备名E104-BT02、MTU 20字节,开发前确认主控串口参数匹配;
l 透传原理:蓝牙模块自动完成串口数据与BLE数据包的双向转换,对用户数据完全透明,主控无需处理BLE协议栈;
l AT指令使用:P00/MOD拉低进入AT模式,指令用<指令>格式不加回车换行,配置成功自动保存,退出AT模式或复位后生效;
l 常用指令:15条指令覆盖复位恢复、串口配置、设备名、广播、连接状态、MAC、MTU、低功耗等功能。
蓝牙模块配置时最常见的错误是AT指令加了回车换行和P00/MOD没有拉低,注意这两点就能避免大部分配置问题。
亿佰特作为物联网应用专家,提供LoRa模组、蓝牙模块、Zigbee模组、WiFi模块、UWB测距定位模块、LoRaWAN、无线音频传输模块、音频传输模块、串口服务器、数传电台、遥控开关、无线网关、4G DTU、CAN模组、以太网模块、远程IO模块、GNSS卫星定位模块、Profinet网关、毫米波雷达模块、嵌入式核心板、工业级单板机、工业工控机、传感探测器等产品线,为行业用户提供一站式无线数传解决方案,已在智慧农业、工业物联网、智慧城市等领域规模化落地。
如需进一步了解无线数传模块和物联网通信设备产品选型或获取技术支持,亿佰特提供硬件选型、技术调试、定制化技术支持服务,欢迎通过以下方式联系:
产品选型与技术咨询:拨打4000-330-990,技术专员一对一解答
技术支持邮箱:support@cdebyte.com
官网了解更多:亿佰特官网—查看完整无线数传模块产品与物联网应用技术资料
微信公众号:搜索"cdebyte"关注微信公众号,获取最新产品动态与应用方案
相关阅读: