HM10蓝牙-UART模块如何启用首次连接PIN码认证?
解决HM10模块iPhone连接时PIN码验证不触发的问题
我之前也碰到过一模一样的情况——明明按手册设置了PIN码,iPhone用LightBlue之类的软件还是直接连上,完全不弹PIN输入框。折腾了好一阵才搞明白核心问题,给你一步步梳理解决办法:
核心原因:HM10默认启用SSP配对模式
iOS对蓝牙SSP(安全简单配对)的「Just Works」模式支持非常友好,这种模式下不需要输入PIN就能自动完成配对。所以哪怕你设置了PIN码,只要模块还处于SSP模式,iOS就会直接跳过PIN验证环节。咱们需要把模块切换回传统PIN配对模式,才能强制触发PIN输入要求。
具体操作步骤
1. 进入HM10的AT指令模式
HM10进入AT模式有两种常用方式,选你顺手的:
- 方法一:上电前把模块的
PIO11引脚接GND,然后给模块上电,此时模块进入AT模式,默认波特率为9600(8位数据位、1位停止位、无校验)。 - 方法二:如果模块当前处于空闲状态(未连接任何设备),直接向串口发送
AT指令,若返回OK,说明已经进入AT模式。
2. 检查当前配对设置
先确认模块当前的配对模式和PIN码配置:
- 发送
AT+TYPE?:查看配对类型,返回+TYPE:1表示启用SSP模式,+TYPE:0表示传统PIN模式。 - 发送
AT+PIN?:查看当前设置的PIN码,默认一般是0000或1234。
3. 切换到传统PIN配对模式并设置自定义PIN码
- 发送
AT+TYPE=0:禁用SSP,切换到传统PIN配对模式,返回OK表示设置成功。 - 发送
AT+PINXXXX(把XXXX替换成你想要的4位/6位PIN码,比如AT+PIN123456),返回OK表示PIN码设置完成。 - 发送
AT+SAVE:保存所有配置,返回OK后断电重启模块,让设置生效。
4. iOS端重置配对缓存并重新连接
这一步绝对不能忘!如果你的iPhone之前和HM10配对过,iOS会保存配对缓存,哪怕模块改了设置,还是会自动连接。所以要:
- 打开iPhone「设置」→「蓝牙」,找到HM10模块的名称,点击旁边的
i图标,选择「忽略此设备」。 - 重新搜索蓝牙设备,找到HM10后点击连接,此时应该会弹出PIN码输入框,输入你设置的PIN码就能完成配对。
额外注意事项
- 固件版本限制:部分早期版本的HM10固件可能不支持关闭SSP,如果执行
AT+TYPE=0返回ERROR,你需要升级模块的最新固件(可以找卖家索要固件和升级工具)。 - 克隆版指令差异:不同厂家的HM10克隆模块可能指令略有不同,如果上面的指令不生效,可以试试
AT+SSP0(禁用SSP)或者AT+AUTH1(启用PIN验证),具体以你手头模块的完整AT指令手册为准。 - 串口调试细节:用串口助手(比如SSCOM、Putty)发送AT指令时,要注意勾选「发送新行」或者手动在指令末尾加
\r\n,否则模块可能无法识别指令。
内容的提问来源于stack exchange,提问作者Manuel




