Edward_Elric 发表于 2013-4-23 22:51:19

蓝牙hc05 ardunio uno的一个奇怪问题

遇到个棘手的问题,一块ardunio lenonardo接一个hc05(蓝牙主机),一块ardunio uno接一个hc05(从机),然后分别通过代码设置成主机从机后,确实是配对了(因为指示灯每秒快闪2下,手机蓝牙收索不到附近的未配对设备),但是发现通过蓝牙调用serial.read()这个函数没有读取到数据,serial.print确实又发送了数据(通过手机调试的时候确实接收到了数据),这个是什么问题,难道说蓝牙不支持serial.read()这个函数么
现在两个蓝牙设备都只能发数据,都不能接收数据
谁遇到过类似的问题

贴上我对蓝牙主机的设置:
#define AT 2
#define LED 13
void setup()
{
       pinMode(LED,OUTPUT);
       pinMode(AT,OUTPUT);
       digitalWrite(AT,HIGH);
       Serial.begin(38400);//这里应该和你的模块通信波特率一致
       delay(100);
       Serial.println("AT");
       delay(100);
       Serial.println("AT+NAME=Bluetooth-master");//命名模块名
       delay(100);
       Serial.println("AT+ROLE=1");//设置主从模式:0从机,1主机
       delay(100);
       Serial.println("AT+PSWD=1234");//设置配对密码,如1234
       delay(100);
       Serial.println("AT+UART=9600,0,0");//设置波特率9600,停止位1,校验位无
       delay(100);
       Serial.println("AT+RMAAD");//清空配对列表
       delay(100);
      // Serial.println("AT+BIND=20:13:02:20:02:40");
   //delay(100);
      // Serial.println("AT+CMODE=0");
   //delay(100);
}
void loop()
{
       digitalWrite(LED, HIGH);
       delay(500);
       digitalWrite(LED, LOW);
       delay(500);
}
再贴上蓝牙从机的设置:

#define AT 2
#define LED 13
void setup()
{
       pinMode(LED,OUTPUT);
       pinMode(AT,OUTPUT);
       digitalWrite(AT,HIGH);
       Serial.begin(38400);//这里应该和你的模块通信波特率一致
       delay(100);
       Serial.println("AT");
       delay(100);
       Serial.println("AT+NAME=Bluetooth-slave");//命名模块名
       delay(100);
       Serial.println("AT+ROLE=0");//设置主从模式:0从机,1主机
       delay(100);
       Serial.println("AT+PSWD=1234");//设置配对密码,如1234
       delay(100);
       Serial.println("AT+UART=9600,0,0");//设置波特率9600,停止位1,校验位无
       delay(100);
       Serial.println("AT+RMAAD");//清空配对列表
}
void loop()
{
       digitalWrite(LED, HIGH);
       delay(500);
       digitalWrite(LED, LOW);
       delay(500);
}
大家帮忙看一下,我的直观感觉是问题应该出在蓝牙身上,因为ardunio的库函数出问题的几率比较小

太阳雨 发表于 2013-7-25 21:45:15

是arduino默认串口的问题,你用软件自定义串口代替默认的连接PC的串口应该就没有问题了。
因为默认串口已经和PC连接,所以只接受PC的数据。

Zuomuqiangba 发表于 2013-8-11 22:05:01

设置那些AT指令的时候,不用键入回车换行符吗?是不是这里的问题

学慧放弃 发表于 2013-10-29 20:58:21

不知道怎么弄??

zjhyhky 发表于 2014-1-25 09:13:48

应该是上面说的原因:

是arduino默认串口的问题,你用软件自定义串口代替默认的连接PC的串口应该就没有问题了。
因为默认串口已经和PC连接,所以只接受PC的数据。

可以用软串口连接蓝牙,话说昨天调蓝牙到半夜

天天向上/tp 发表于 2015-1-7 21:20:26

我也遇到蓝牙配置的问题了,不知所措。通过电脑串口软件配置
页: [1]
查看完整版本: 蓝牙hc05 ardunio uno的一个奇怪问题