极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20445|回复: 5

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

[复制链接]
发表于 2013-4-23 22:51:19 | 显示全部楼层 |阅读模式
遇到个棘手的问题,一块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的数据。
回复 支持 反对

使用道具 举报

发表于 2013-8-11 22:05:01 | 显示全部楼层
设置那些AT指令的时候,不用键入回车换行符吗?是不是这里的问题
回复 支持 反对

使用道具 举报

发表于 2013-10-29 20:58:21 | 显示全部楼层
不知道怎么弄??
回复 支持 反对

使用道具 举报

发表于 2014-1-25 09:13:48 | 显示全部楼层
应该是上面说的原因:

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

可以用软串口连接蓝牙,话说昨天调蓝牙到半夜
回复 支持 反对

使用道具 举报

发表于 2015-1-7 21:20:26 | 显示全部楼层
我也遇到蓝牙配置的问题了,不知所措。通过电脑串口软件配置
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 14:31 , Processed in 0.096072 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表