1. 蓝牙模块
1.1 简介
蓝牙模块可以将有线串口数据流六,转换为无线蓝牙数据流,实现无线串口功能;
蓝牙模块分为三个,分别如下图所示:
SPP = Serial Port Profile;串行端口配置文件(串口协议)
BLE = Bluetooth Low Energy;串行端口配置文件(串口协议)
| 蓝牙类别 | 标志 | 特性 |
|---|---|---|
| 经典蓝牙 | SPP,蓝牙3.0及以下 | 功耗高,速率较快,先配对后连接 |
| 低功耗蓝牙 | BLE,蓝牙4.0及以上 | 功耗低,速率较慢,快速连接 增加组网、广播、定位等新功能 |
| 双模蓝牙 | SPP + BLE | 同时集成经典蓝牙和低功耗蓝牙,兼容性更强 |
主从类别:
| 主从类别 | 特性 |
|---|---|
| 单从机 | 仅能被动等待主设备连接,无法主动发起连接请求 |
| 主从一体 | 可切换角色为主设备或从设备,作为主设备时,可主动发起连接请求 |
常用的蓝牙模块如下图所示:
| 型号 | 蓝牙类别 | 主从属性 | 核心特点 | 适用场景 |
|---|---|---|---|---|
| HC-04 | 双模蓝牙(SPP经典蓝牙 + BLE低功耗蓝牙) | 主从一体 | 同时支持经典SPP串口透传+BLE,安卓苹果手机都能直连,兼容HC05,可AT指令配置 | 项目需要同时兼容安卓经典蓝牙、苹果BLE,教学/智能小车 |
| HC-05 | 经典蓝牙(SPP,蓝牙2.0) | 主从一体 | 经典蓝牙标杆,速率高;必须配对,AT指令丰富,可做主设备主动连接其他蓝牙模块 | 传统单片机无线串口、模块之间组网,最经典教学模块 |
| HC-08 | BLE低功耗蓝牙(蓝牙4.0) | 主从一体 | BLE低功耗,功耗很小,不需要传统配对,快速广播连接;通信距离较远 | 电池供电设备,穿戴、传感器采集、苹果手机直连 |
| JDY-31 | 经典蓝牙(SPP,蓝牙3.0) | 单从机 | 仅从机,只能被动等待连接;价格便宜,引脚兼容HC05从机版本 | 简单单片机无线串口,手机控制小车,只需要从机场景 |
| JDY-33 | 双模蓝牙(SPP + BLE4.2) | 单从机 | 双模,同时支持SPP经典蓝牙+BLE;只能做从机,安卓苹果都能连接 | 低成本双模从机替代方案,不需要模块主动发起连接 |
| BT16 | BLE低功耗蓝牙 | 主从一体 | BLE低功耗蓝牙模块,功耗低,BLE5.0,串口透传,体积小巧 | 电池供电物联网设备,低功耗无线数据采集 |

1.2 硬件连接
方法1:
此方法不需要单片机,不需要写程序,可以对蓝牙模块进行简单的通信测试;
都可以使用此链接方式,进行试验;
此外State引脚可以判断蓝牙是否连接;
Key引脚可以控制是否进入AT模式;
AT模式用于控制蓝牙模块;

方法2:
手机与单片机无线通信;

方法3:
单片机与单片机之间的通信;

1.3 蓝牙模块配置(AT模式)
蓝牙未连接,或者按住KEY不放,可以使模块进入AT模式,此时可以通过串口发送AT指令,可对蓝牙模块进行配置;
AT = Attention
AT 模式全称:AT Command Mode,AT 指令模式
以HC-04为例介绍AT指令:
| AT指令 | 功能 |
|---|---|
| AT | 测试通讯 |
| AT+BAUD | 查询和设置串口波特率 |
| AT+DEFAULT | 参数恢复默认值 |
| AT+ROLE | 查询和设置角色(主设备/从设备) |
| AT+NAME | 查询和设置经典蓝牙名称 |
| AT+PIN | 查询和设置经典蓝牙配对密码 |
| AT+BNAME | 查询和设置BLE蓝牙名称 |
对于相关的指令使用方法,可以参考对应的模块手册;
1.4 模块与手机的连接
使用对应的软件或者小程序控制;

1.5 蓝牙小程序
此时蓝牙模块经过USB转串口 与电脑相连;
手机小程序与蓝牙模块相连接;
此时可以实现无线透传;
电脑串口助手的数据,可以直接显示在蓝牙小程序上;

\r \n 的历史来源
起源于老式打字机,不是计算机发明的,是机械时代留下来的习惯。
- CR(Carriage Return,\r,回车,0x0D)
Carriage = 字车(装纸、带着打字头左右滑动的架子)
Return:把字车推回这一行的最左端 。
👉 只做光标回到行首,不往下走一行。 - LF(Line Feed,\n,换行,0x0A)
Feed = 走纸
👉 纸向上卷一行 ,打字位置到下一行,但是还在本行最右边,不会跳到左边。
机械时代两个动作是分开的:
打完一行,先 CR(字车回到左边) ,再 LF(纸卷到下一行) 。
两个动作合起来,才能:到下一行开头 ,也就是
\r\n。