求助:安卓手机与蓝牙模块通信问题
用手机上的串口助手可以与蓝牙通信,但是发送指定字符无法反悔,求大神解释先上代码
void setup()
{
Serial.begin(9600);
void loop()
{
if(Serial.read()>0)
{ byteval=Serial.read(); //char也不行,也试着定义int,手机发送数字1,if(val==1),同样不能返回
Serial.println ("ok"); 安卓手机端返回ok
if(val=='a')
Serial.println ("成功");
else if(val=='b')
Serial.println ("不容易");
}
}
发送任意字符,返回ok,但是发送a或者b同样返回ok,如果去掉 Serial.println ("ok");则什么都不返回,手机发送按照ascll标准发送的,求解释,连线应该没问题,要不也不会返回ok 可能是因为你发送的 Serial.println ("成功"); 中的汉字解析不正确
你把他修改为 success 这样的英文试试 zoologist 发表于 2016-1-17 21:16 static/image/common/back.gif
可能是因为你发送的 Serial.println ("成功"); 中的汉字解析不正确
你把他修改为 success 这样的英文试试 ...
不行,这个app能解析汉字,改成英文依然接收不到:'(,实在搞不懂哪出问题了 你看一下例程
我记得应该有个 available() 的判断才行 我弄成了,问题出在手机上的蓝牙串口助手app上,版本可能不匹配 这样子就可以了:
int i;
void setup()
{
Serial.begin(115200);
}
void loop()
{
if(Serial.available())
{
i=Serial.read();
Serial.println ("ok");
switch(i)
{
case'1':
{Serial.println ("成功"); break; }
case'2':
{Serial.println ("不容易"); break; }
}
}
} 曾木升 发表于 2016-4-4 18:32 static/image/common/back.gif
这样子就可以了:
int i;
void setup()
为什么楼上的不行,这样就行?
页:
[1]