1. 项目概述与主从一体架构拆解1.1 AC6328A是什么为什么它值得用AC6328A是珠海杰理科技推出的一款低功耗蓝牙SoC芯片这颗料在消费电子、物联网透传、智能家居控制这类场景里出镜率很高。它内置了BLE 5.x协议栈原生支持串口透传并且可以通过AT指令集完成几乎所有参数配置不需要写一行嵌入式代码就能把设备跑起来。我第一次接触AC6328A是被它的“主从一体”能力吸引的。市面上很多廉价蓝牙串口模块要么只能做从机等主机来连要么只能做主机去连别人使用场景被锁死。AC6328A这类主从一体模块同一颗芯片既能当主机去主动连接从机设备也能当从机等待别人连接甚至可以在双从、双主、主从混合这些模式下工作。这就意味着你不需要为不同的项目采购不同型号的模块一个模块通吃对做原型验证和批量量产都很友好。如果拿它和经典的HC-05、HC-06对比差异就更明显了。HC-06只能做从机想改成主机基本没戏HC-05虽然支持主从切换但是必须通过按键或特定引脚进入AT模式操作繁琐且连接管理能力比较弱。AC6328A的AT指令直接通过串口下发主从模式切换、扫描、绑定、回连都是软件指令完成整个开发体验完全不一样它更像一个带协议栈的蓝牙MCU而不只是一个“串口转蓝牙”的桥。1.2 主从一体的核心价值与应用场景我先解释一下“主从”这两个角色在蓝牙BLE里的含义方便刚接触的朋友建立基本认知。在BLE体系里发起连接的一方叫主机Central被连接的一方叫从机Peripheral。传统BLE设备的角色是固定的主机永远是主机从机永远是从机。但主从一体模块你可以在出厂后通过AT指令随时把角色改过来甚至在部分固件版本里做到同时维护两条连接一条作为主机连出去一条作为从设备被连进来。这套能力在几个场景里非常有用两个单片机之间无线透传A板上的MCU要把数据发给B板如果两块板子都只用从机模块那谁都没法主动发起连接链路压根建不起来。用主从一体模块把一边设为主机一边设为从机上电后自动回连即可。手机APP设备传感器网关的桥接设备作为从机与手机通信同时作为主机去采集周边传感器的数据一个模块承担双向角色系统结构能简化不少。替代有线串口调试在产线工装、设备调试场景用蓝牙透传替代USB转串口线主从一体模块可以任意一端主动发起连接灵活度更高。所以在选型阶段如果项目里存在“两个设备之间的数据通路方向不确定或者角色可能变化”的情况直接选主从一体模块能省去后期改板的麻烦。1.3 整体方案设计思路整套方案的核心链路是串口数据 - AC6328A内部协议栈封装 - 蓝牙射频发送 - 对端蓝牙接收 - 对端模块串口输出。从开发的角度看我们要做的只有三件事把一个AC6328A模块配成“主机”并把要连接的从机蓝牙地址、连接参数写入配置。把另一个AC6328A模块配成“从机”设置好设备名称、服务UUID、波特率等广播参数。两端上电后主机自动扫描并连接从机连接建立后串口层完全透明双向数据互通。后面的章节我会一步一步展开演示具体的AT指令怎么发、参数怎么选、连接怎么建、问题怎么排。我尽量把每个操作背后的“为什么”也讲清楚而不是只丢一条指令让你去抄。2. 硬件准备与AT指令体系详解2.1 硬件接线与开发环境准备虽然AC6328A是全功能SoC但绝大多数市售模块已经把晶振、天线匹配电路、Flash都集成好了我们只需要关心串口和电源部分。我这里以最常用的6Pin模块为例引脚定义如下引脚名电平功能说明VCC3.3V-5.5V模块供电GND-电源地TXD3.3V TTL模块串口发送接MCU的RXRXD3.3V TTL模块串口接收接MCU的TXEN/KEY3.3V TTL高电平进入AT指令模式低电平/悬空为透传模式STATUS3.3V TTL输出连接状态指示连接成功输出高电平接线这块有两个坑我需要特别提醒。第一AC6328A的串口电平是3.3V TTL如果你的MCU用的是5V电平比如老款Arduino UNO一定要做电平转换或者用分压电阻把5V降到3.3V再进RXD。我见过不少朋友直接把5V单片机的TX接到模块RXD上用了几次之后模块就再也没反应了拆下来量才发现芯片已经烧了。第二EN/KEY引脚不能悬空不管。如果你想用默认配置直接透传低电平或悬空没问题但如果想改任何参数必须先在上电前把EN引脚拉高否则AT指令发过去全部石沉大海。这里说的“上电前”是硬性时序要求不是上电后再拉高很多新手在这个细节上栽跟头。除了模块本身还需要准备一个USB转TTL工具推荐CP2102或CH340方案的驱动稳定别用那种几块钱的免驱版兼容性太差。一颗3.3V稳压芯片或带3.3V输出的开发板给模块供电。虽然部分模块标了5.5V耐受但长期用还是推荐3.3V供电。串口调试助手Windows下我用SSCOMmacOS/Linux下用minicom或CoolTerm都行。2.2 进入AT指令模式的方法AC6328A的启动逻辑比较简单但很严格它通过上电瞬间的引脚电平状态来判断进入AT模式还是透传模式。具体操作流程如下把EN引脚接到3.3V高电平。给模块上电VCC和GND接好。打开串口调试助手波特率选择常见值出厂通常为9600或115200具体以模块铭牌为准数据位8、停止位1、无校验。发送AT测试指令如果模块返回OK说明已经进入AT模式。这里有一个容易被忽略的细节必须是“先拉高EN再上电”。如果你先上电后拉EN模块已经以透传模式启动了这时候EN引脚不会再触发模式切换。要给模块重新断电再上电才能生效。AC6328A在AT模式下串口输出的是一些调试日志和[ATOK]之类的响应文本还有可能有乱码。如果你看到屏幕上跳出来一堆看不懂的字符不用慌这是模块内部协议栈的调试信息不影响AT识别。有些固件版本可以通过AT指令关闭这些日志。2.3 核心AT指令表与配置逻辑AC6328A的AT指令集没有一个统一标准不同固件版本多少有差异。我以最常用的一版固件为例列出核心指令大家拿到手先发AT确认固件版本再对照自己的指令集调整。指令功能说明返回值示例AT测试指令确认串口通信正常OKATNAMEXXX设置广播名称OKATROLEM / ATROLES设置主/从模式OKATBAUD115200设置串口波特率OKATUUID0xFFE0设置服务UUID16位OKATCHAR0xFFE1设置特征值UUIDOKATSCAN扫描周围广播设备DISC: 地址,名称,RSSIATCONNMAC地址主机主动连接指定从机CONN:OKATCONN0连接上次保存的设备CONN:OKATDISCON断开当前连接DISC:OKATRSSI查询当前连接信号强度RSSI:-45dBmATRESET软件复位模块OKATVER查询固件版本VER:V1.2.3配置逻辑其实很简单就三步走先改角色再改通信参数名称、UUID、波特率最后做连接操作。这里我不建议一上来就把所有参数改完正确的做法是一次只改一个参数改完发ATRESET让模块重启再继续下一步。如果所有参数一次性写完再重启出了问题你根本不知道是哪个参数导致的。关于UUID我再多说一句。BLE通信要建立起来主机和从机必须使用同一组服务UUID和特征值UUID。市面上的通用透传模块通常默认采用0xFFE0/0xFFE1这一组所以如果你拿两台同型号模块互连不需要改UUID。但如果你要让AC6328A去连接一个自定义的蓝牙设备比如自己做的心率计、温湿度传感器必须先把UUID改成和设备端一致否则扫描到也连不上。3. 主从一体实战从配置到透明传输3.1 从机端配置流程详解我先演示从机的配置因为主机连接需要有目标从机存在顺序上更合理。假设我的场景是两个AC6328A模块做串口透传A模块作为从机接在上位机USB转TTL上B模块作为主机接在单片机UART上。我们一步步来。第一步按照上文的方法进入AT模式发送AT确认模块在线。如果返回OK继续否则检查接线和EN时序。第二步设置从机模式ATROLES从机模式设置完成后模块会停止扫描进入持续广播状态。广播名称建议改成容易识别的方便主机扫描时快速定位。第三步设置广播名称和设备参数ATNAMEAC6328A_SLAVE ATUUID0xFFE0 ATCHAR0xFFE1这里有个细节如果你在同一个串口会话里连续发送多条AT指令需要等上一条返回OK之后再发下一条不要一次性粘贴所有指令。模块的AT解析器在收到指令后需要时间处理如果输入过快部分指令会被丢弃后续的所有配置都会乱套。第四步设置波特率。透传模式下两端模块的串口波特率必须一致否则传出去的数据全是乱码。我这里统一用115200ATBAUD115200这里要特别提醒ATBAUD设置成功后模块的串口波特率立即切换不会再以旧波特率响应。你把波特率改成115200之后串口助手必须立刻切成115200否则后续所有指令都没反应。如果你不确定当前模块波特率是多少可以在上电后逐个试9600、19200、38400、57600、115200这几个常见档位。第五步复位模块让全部配置生效ATRESET复位之后模块会自动进入透传模式以从机身份广播。如果此时用手机上的BLE调试工具比如nRF Connect应该能扫描到一个叫AC6328A_SLAVE的设备服务列表里能看到UUID为0xFFE0的服务。3.2 主机端配置流程详解下一步配置主机端模块B。第一步同样先进AT模式发AT确认在线。第二步设置主机模式ATROLEM模块进入主机模式后不会再被动等待连接而是会主动扫描周围设备。如果你现在用手机扫是扫不到这个模块的因为它在主机模式下不广播。第三步执行扫描ATSCAN扫描指令发出后模块会持续工作几秒然后返回周围发现的设备列表。设备列表的格式通常是DISC:0A:00:00:11:22:33,AC6328A_SLAVE,-52这个格式依次是蓝牙物理地址、广播名称、信号强度RSSI。仔细核对名称确保你要连接的确实是刚刚配置的那个从机模块别连到旁边的AirPods或者别人的手环上。如果列表里没有目标设备先检查从机是不是还在正常广播以及两个模块之间的距离。我实测下来桌上放着一般没问题但如果隔着金属外壳或者远距离信号衰减会非常严重RSSI低于-90dBm基本上是连不上的。第四步发起连接ATCONN0A:00:00:11:22:33连接建立后模块会返回CONN:OK。如果你的固件支持自动回连配置过一次之后下次上电发送ATCONN0即可快速重连上次的设备不需要再次扫描。第五步设置相同波特率115200并复位ATBAUD115200 ATRESET到这里主机端配置完成两端都是115200波特率服务UUID一致。3.3 建立连接与数据透传验证现在两端都复位到了透传模式。上电后从机开始广播主机会按照内部配置自动扫描并连接之前保存的目标从机。此时你观察两个模块的STATUS引脚连接成功后它们都会输出高电平。验证透传最直观的方式是回环测试。我在实际调试中喜欢用这种办法主机端连接USB转TTL到电脑串口助手打开COM口波特率115200。从机端连接另一个USB转TTL到电脑同样打开串口助手波特率115200。在从机端串口发一段字符主机端应该能收到同样的字符反过来从主机发给从机也行。如果数据收得到说明整条链路已经打通透明传输没问题。我给这个环节起个名字叫“双串口回环验证法”它是我每次做蓝牙透传项目必跑的一步能在最短时间内确认链路可用性再把复杂的业务逻辑接进来。到这里最基础的主从透传已经实现了。再往深一点如果单片机端的MCU要主动发送数据给上位机只要把MCU的串口TX接到主机模块的RXD即可MCU完全不需要关心蓝牙协议栈的细节只需要按照串口115200、8N1格式发数据。3.4 进阶场景主从切换与双设备互联有些项目需要A端既能主动发数据给B端又能在需要时被C端控制。这时就要用到“同一模块在不同时刻切换主从角色”的能力。操作命令很简单ATROLES ATRESET模块重启后变为从机模式可以被其他主机连接。需要切回主机时ATROLEM ATCONN0 ATRESET但我要给大家提个醒这套“软切换”流程需要模块重启丢数据是必然的。如果你的系统对实时性要求高切换角色前必须确保当前没有正在传输的业务数据否则会造成半包、丢包。在设计通信协议时最好预留一个“角色切换”命令让对端知道接下来可能有几秒不可用避免误判为故障。另一个进阶场景是透传带协议。刚才做的是最原始的“裸透传”直接串口数据转发。但真实项目里波特率不一致、半包问题、粘包问题都可能导致对端解析失败。我建议在应用层做一个简单的帧协议比如定义帧头、长度、CRC校验这样即使蓝牙链路有一两个字节的偶然错误接收端也能通过校验发现并重发。4. 常见问题排查与避坑经验4.1 连不上、指令无响应等高频故障定位我调试蓝牙模块这几年把高频故障总结成一张速查表你们可以按图索骥现象可能原因排查思路AT指令无任何返回EN引脚未拉高或上电时序错误断电把EN接3.3V再重新上电AT指令返回乱码但仍能收到OK波特率不匹配逐个尝试9600/19200/38400/57600/115200扫描不到从机②从机未正确进入广播模式确认从机ROLES且STATUS引脚为低电平扫描到但连接不上UUID不一致对比两端ATUUID和ATCHAR是否一致连接后立刻断开信号强度太差或从机地址变了查看RSSI确保大于-80dBm重新扫描确认地址透传数据全是乱码两端波特率不一致或者数据位校验位设置不一致统一两端波特率建议8N1这里面有个最常见的问题就是“AT指令没反应”。我怀疑很多模块不是坏了而是上电时序错了。我的建议是别怕麻烦每次调试都严格按“EN拉高-上电-等1秒-发AT”这个顺序来把操作固化成肌肉记忆问题直接少一半。如果你确定时序没问题、波特率也正确但AT还是不响应那可能是模块出厂默认波特率不是常规档位。部分定制固件会把波特率设成921600或者19200这种情况就得用逻辑分析仪在模块TXD脚上抓波形看实际波特率是多少。4.2 透传丢包、乱码的深层原因与处理连接建立成功但数据传错这个问题比连不上更让人头疼。我遇到过几个典型情况分享给各位。第一个是供电问题。AC6328A在发射瞬间的峰值电流可以达到几十毫安如果供电线太细或者USB转TTL工具的输出能力不够电压会被拉低导致模块射频前端工作异常。我实测下来USB口接独立供电和直接用杜邦线从Arduino的3.3V引脚供电透传丢包率有明显差异。建议模块供电用独立的LDO稳压输出并且电容尽量靠近模块电源引脚放置。第二个是串口缓冲区溢出。AC6328A的串口接收FIFO并不大如果主机一次性发几百个字节过去模块还来不及通过蓝牙发出去后续的串口数据就会覆盖FIFO造成丢包。解决办法是应用层做分包发送我一般每包控制在20字节以内包与包之间留10到20毫秒间隔。如果你的数据量很大可以考虑启用模块的流控引脚但大多数模块没有引出RTS/CTS所以分包的思路更实用。第三个是空中干扰。2.4GHz频段不只有蓝牙Wi-Fi、微波炉、无线鼠标都在这个频段抢信道。如果环境中2.4GHz设备特别多连接不稳定是常态。缓解办法是让模块使用BLE扩展广播或者跳到干净的信道不过AC6328A默认协议栈不开放手动改信道实战中更有效的办法是缩短两端距离、减少遮挡物。4.3 AT配置无法保存的坑与恢复默认配置我在群里见很多朋友反馈AT指令明明返回OK了断电重启之后配置全丢又回到出厂状态。这个问题多半是模块固件里配置保存标志位没有触发或者写入Flash失败。AC6328A在AT模式下修改参数后需要用ATRESET软复位一次让固件把当前RAM里的配置同步到Flash。如果你改完参数直接断电配置可能还没落盘重启后自然就还原了。另外如果你的模块已经改得乱七八糟找不回正常工作状态了可以直接恢复出厂设置。多数固件支持这条指令ATRESTORE或者通过模块上的恢复按键触发按住按键上电保持几秒后松开模块清空所有配置并恢复默认参数。恢复之后重新配置一遍即可。我个人建议在项目量产阶段预先写一个配置文件把整套AT指令放在上位机脚本里一键配置比手工逐个敲指令高效得多也能避免人为错误。4.4 手机连接不上或无法做透传测试很多朋友习惯在调试时用手机上的BLE工具来测试透传但发现手机虽然能连上模块却发不了数据或者收不到数据。这里要理解一个关键差异BLE通信不是简单的“管道”而是基于GATT的服务和特征值。AC6328A透传框架里0xFFE0服务下的0xFFE1特征值通常是可读写、可通知的。手机端要正确接收模块的数据必须先对这个特征值开启通知Notification否则模块发给手机的数据会被丢弃。在nRF Connect里操作路径是连接模块。找到0xFFE0服务。点开0xFFE1特征值。点击“Enable Notifications”。开启通知后模块串口收到的数据会以Notification的形式推送到手机APP手机端往0xFFE1写入数据也能通过模块串口发出来。另一个手机连不上的原因是模块的广播参数。部分模块默认广播间隔很长手机APP可能扫描不到。遇到这种情况可以短按模块上的配对按键触发一次快速广播大多数手机工具都能立刻扫到。5. 实测总结一条主从透传链路的完整验证记录最后我再分享一次完整的实测记录用的是手头两块AC6328A模块一块做主机一块做从机中间做数据传输测试。这个过程可以当做一个标准验收流程建议所有朋友在项目交货前都跑一遍。测试环境主机模块 FW版本V1.2.3从机模块同批次。两个模块分别通过两个CH340G USB转TTL接入同一台电脑的不同COM口。波特率统一1152008N1。两端间距1米无遮挡。配置过程从机AT确认 - ATROLES - ATNAMETEST_S - ATUUID0xFFE0 - ATCHAR0xFFE1 - ATBAUD115200 - ATRESET。主机AT确认 - ATROLEM - ATSCAN返回TEST_S的MAC- ATCONNMAC - ATBAUD115200 - ATRESET。复位后分别打开两个串口窗口从机端COM口发送“Test123”主机端立即收到“Test123”。反向发送“Pong456”从机端也能收到。连续测试10分钟统计发送1000包数据每包16字节在无干扰环境下丢包为0耗时约1分20秒。把距离拉到10米后丢包开始增加RSSI约为-78dBm这就是能稳定工作的临界值。如果大家后续要做远距离传输考虑加外部PA或者换更有方向性的天线设计。我在实际测试中还发现一个情况如果主从模块在开机后没有自动回连成功主机的STATUS引脚会一直保持低电平。这时候只要给主机发送AT指令重新执行一次ATCONN0链路很快就能恢复。这个过程可以用MCU的一个GPIO来检测并自动触发重连我在项目里就写了一段简单的逻辑检测到STATUS低电平超过5秒就拉高EN重启模块实际运行非常稳定。这套主从一体配置方案我已经在几个项目里反复用了包括两板卡之间的无线数据同步、手持设备与工装的无线配置下发。AC6328A的性价比和灵活性都是非常出色的。如果你手头的项目正好有类似需求完全可以按照这篇文章的思路从AT指令入手把主从透传链路打通然后在上层去实现你自己的业务逻辑。
企业数字化 ERP 产品动态
相关推荐
庐山派K230 Web监控实战:H.264+WebSocket+MSE低延迟方案 1. 庐山派K230做Web监控,我为什么选这条路庐山派K230这颗板子最近在创客圈里热度不低,6TOPS的NPU算力、双核RISC-V加一颗专用AI核、自带MIPI CSI接口和千兆网口,价格还压在两百块以内。很多人拿到手第一反应是跑个YOLO做目标检测,… · 2026/9/25 6:12:47
用WinHex定位文件首扇区:NTFS簇号到LBA的换算实战 简介:借助WinHex深入磁盘底层,讲解如何定位文件中第一个扇区,适合数据恢复、系统调试与安全分析方向的开发运维人员。内容从MBR主引导记录、分区表解析入手,逐步延伸到FAT32文件系统的DBR、FAT表与根目录计算,最后演示… · 2026/9/25 6:12:41
EmuELEC从TF卡迁移到eMMC完整指南:版本适配、设备树与启动引导详解 手里那台盒子把EmuELEC装在TF卡里跑了小半年,游戏倒是没少玩,就是每次切换模拟器、读游戏列表的时候,能明显感觉到卡顿。后来开机干脆卡在logo,切到电脑上检测,卡芯发烫,随机读写已经掉得没法看,… · 2026/9/25 6:12:41
Atlas 300V 24G推理卡部署YOLOv5实战:从环境配置到性能调优 最近好多人在问 Atlas 300V 24G 是不是一张“运算加速卡”,还有人问我能不能拿它来训练 YOLO。这个问题的答案其实就一句话:它是推理加速卡,不是训练卡,但搞定 YOLO 目标检测的线上部署,它确实是一把好手。我去年在 At… · 2026/9/25 6:52:25
Union Alpha限免实测:从zcode配置到机械臂操控全流程 最近圈子里被一个叫Union Alpha的模型刷屏了,宣传口径特别直接:性能逼近Astra,限免一周。我一开始以为又是哪个实验室放出来的营销烟雾弹,结果测了三天发现这玩意儿确实有点东西,尤其是在工具调用和视觉控制这块&#… · 2026/9/25 6:52:19
深度解析 Hypothesis 测试执行次数:`max_examples` 的完整运行语义与底层实现 测试开发工具 【免费下载链接】hypothesis The property-based testing library for Python 项目地址: https://gitcode.com/gh_mirrors/hy/hypothesis 点击查看 免费下载 本指南聚焦 Hypothesis(Python 属性测试库)中一个看似简单实则微妙的… · 2026/9/25 6:52:13
BentoML Keras 集成实战:save_model、load_model 与 get 三大 API 全解析 模型推理服务人工智能后端大模型MLOpsLLMOps 【免费下载链接】BentoML The easiest way to serve AI apps and models - Build Model Inference APIs, Job queues, LLM apps, Multi-model pipelines, and more! 项目地址: https://gitcode.com/gh_mirrors/be/BentoM… · 2026/9/25 6:52:13
【Coze】在Coze平台使用源码创建工作流 Coze 提供了图形化的工作流搭建平台,适用于低代码构建自动化任务流程。通过资源管理、节点配置与流程连接,可实现多种业务逻辑的在线部署。
本文介绍如何在 Coze 中创建工作流资源、导入流程 JSON 配置,并完成起止节点的连接与字段设置,直至试运行与发布上线的全过程。 文… · 2026/9/25 6:52:07
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37