由于项目需要用到Android手机控制单片机,所以用到了HC-06蓝牙模块(以下简称蓝牙模块),找了一些网上的参考资料发现好像不太全,折腾了半天才弄好,因此出此文记录一下,也希望能帮助到有需要的朋友.
本文主要介绍蓝牙模块与单片机(本文以Arduino为例)以及PC的连接通信
为了配置蓝牙模块,我们先让单片机与蓝牙模块正常通信,这里需要在代码里控制数据传输与显示
/*
测试通信之前首先要了解一下通信的流程
PC电脑连接单片机,单片机连接蓝牙模块
在电脑上用串口发送AT指令到单片机
单片机接收到指令后通过数字口9发送指令到蓝牙模块的RX端
蓝牙模块接收指令后通过TX发送给单片机数字口8
单片机通过数字口8接收指令后再通过usb线输出到pc电脑
【连线】
数字口8----TXD
数字口9----RXD
VCC-----VCC
GND-----GND
*/
#include
SoftwareSerial BluetoothSerial(8, 9); // RX, TX
char value; //用于中转数据
void setup() {
//打开串行通信,等待端口打开:
Serial.begin(9600);
while (!Serial) {
; // 等待串口连接。
}
Serial.println("Serial Connected!");
// 设置蓝牙串口通讯的速率 HC06默认是9600
BluetoothSerial.begin(9600);
}
void loop() { // 循环
if (Serial.available()) { //检测单片机串口状态
value = Serial.read();
BluetoothSerial.write(value);//蓝牙模块将数据发送给单片机
}
if (BluetoothSerial.available()) {//检测蓝牙模块串口状态
value = BluetoothSerial.read();
Serial.write(value); //单片机将指令发送到蓝牙模块
}
}
将代码成功烧进单片机之后,打开PC上的串口调试助手,设置好调试助手的串口号(跟自己电脑上的单片机连接串口对应,博主是COM6),波特率(HC06默认是9600),校验位(无),数据位(8),
停止位(1),然后打开串口,发现数据接收框内正确收到单片机传来的”Serial Connected”字样,说明单片机与电脑连接正常
接下来对蓝牙模块进行配置.HC06有一个AT模式,与HC05蓝牙模块不同的是,它只需要上电(也就是接上VCC和GND)后它就进入了AT模式(此时红色的状态指示灯是快闪的)
首先发送AT指令到单片机,返回OK,说明蓝牙模块连接正常!
所有的AT指令集说明
接下来配置模块名称
配置模块配对密码
其他配置就不再赘述.
这样蓝牙模块就能够正常使用了.
参考文章:
1.HC-05與HC-06藍牙模組補充說明(三):使用Arduino設定AT命令
http://swf.com.tw/?p=712
2.SoftwareSerial Library:
http://wiki.geek-workshop.com/doku.php?id=arduino:libraries:softwareserial