极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14693|回复: 13

蓝牙串口通信的问题!

[复制链接]
发表于 2013-2-18 22:14:46 | 显示全部楼层 |阅读模式
代码如下:


int val;//定义变量val
int ledpin=13;//定义数字接口13
void setup()
{
Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致。当接入特定设备(如:蓝牙)时,我们也要跟其他设备的波特率达到一致。
pinMode(ledpin,OUTPUT);//设置数字13 口为输出接口,Arduino 上我们用到的I/O 口都要进行类似这样的定义。
}
void loop()
{
val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给val
if(val=='r')//判断接收到的指令或字符是否是“R”。
{//如果接收到的是“R”字符
digitalWrite(ledpin,HIGH);//点亮数字13 口LED。
delay(100);
digitalWrite(ledpin,LOW);//熄灭数字13 口LED
delay(100);
Serial.println("Hello World!");//显示“Hello World!”字符串
}
}

为什么录入r后,无返回信息?







2560跟扩展板连接

TX ---RX0 RX---TX0

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-2-18 22:57:38 | 显示全部楼层
val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给val
超时就跑了
要加一句
if serial.available()
{
val=Serial.read()
.......
}

====先不用兰芽,直接调试通过后再接兰芽==
回复 支持 反对

使用道具 举报

发表于 2013-2-18 23:00:27 | 显示全部楼层
char val  ?字符类型?》?
回复 支持 反对

使用道具 举报

发表于 2013-2-18 23:00:45 | 显示全部楼层
你把 val=Serial.read() 读到的数据 显示出来看看 看看你发送的字节是 asc码 还是 16进制的。
另外 我通过Amarino 非常简单实现安卓下和Arduino的通讯,你可以参考http://www.amarino-toolkit.net
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-18 23:02:43 | 显示全部楼层
yyy_zc 发表于 2013-2-18 22:57
val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给val
超时就跑了
要加一 ...

不接蓝牙 打印没问题!在电脑串口上正常
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-18 23:04:17 | 显示全部楼层
gaoshine 发表于 2013-2-18 23:00
你把 val=Serial.read() 读到的数据 显示出来看看 看看你发送的字节是 asc码 还是 16进制的。
另外 我通过 ...

您有没有简单点的Amarino 的例子 发一份我!
[email protected]
非常感谢!
回复 支持 反对

使用道具 举报

发表于 2013-2-19 00:16:56 | 显示全部楼层
官方上 2560 定义的串口针脚
Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip.
看下你接的是串口几就使用哪个串口进行读取
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 09:14:47 | 显示全部楼层
quqianghao 发表于 2013-2-19 00:16
官方上 2560 定义的串口针脚
Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 ( ...

非常感谢您的回复!我晚上再试试!
回复 支持 反对

使用道具 举报

发表于 2013-2-19 09:56:43 | 显示全部楼层
蓝牙与板间的接线,rx tx 交叉,换一下线
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 10:11:25 | 显示全部楼层
yyy_zc 发表于 2013-2-19 09:56
蓝牙与板间的接线,rx tx 交叉,换一下线

交叉了。。。。。。。。。。。接的是RX0 TX0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 21:20:14 | 显示全部楼层
刚才又试了一次!连接了 RX0 TX0.
RX1 TX1
RX2 TX2
RX3 TX3
而且拆下了扩展板 直接用2560 连接蓝牙  也不行。。有哪个高人告诉下我究竟怎么回事吗 ?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 21:26:45 | 显示全部楼层
yyy_zc 发表于 2013-2-18 22:57
val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给val
超时就跑了
要加一 ...

按照您的方法试了  还是不行!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 21:27:51 | 显示全部楼层
gaoshine 发表于 2013-2-18 23:00
你把 val=Serial.read() 读到的数据 显示出来看看 看看你发送的字节是 asc码 还是 16进制的。
另外 我通过 ...

刚试了 电脑上打印出来是小写的r.没问题 为什么接了蓝牙后 没效果呢?
回复 支持 反对

使用道具 举报

发表于 2013-6-18 17:06:56 | 显示全部楼层
你好,这个问题你解决了吗?我最近也遇到这个问题了,蓝牙HC-06模块可以接收16进制数,但不能接收字符?这让我很纳闷
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 15:44 , Processed in 0.048171 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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