angel725 发表于 2014-10-3 23:07:09

这个蓝牙arduino接收,串口怎么总是“FFFFFFFF”


void cmd(){
int n ;
for(n=0;n<=5;n++){
    BT_val = Serial.read();
    BT_array=BT_val;
}
}
void loop(){
cmd();   
   Serial.println(BT_array,HEX);
   Serial.println(BT_array,HEX);
if(BT_array==0XFFFFFFFF && BT_array==0x5A
    && BT_array==0x5B && BT_array==0XFFFFFFFF){
    switch (BT_array=0x00)   
    {
      case 0x00:
      switch(BT_array)
      {
          case 0x01:
          //case 'w':
            Forward();break;
          case 2:
          //case 'a':
            Left();   break;
          case 3:
          //case 'x':
            Stop();   break;
          case 4:
          //case 'd':
            Right();    break;            
          case 5:
          //case 's':
            Back();   break;
      }
      break;
    }
}

*FORWARD = {(byte) 0xFF, 0x5A, 0x5B, 0x00, 0x01, (byte) 0xFF};
*BACK = {(byte) 0xFF, 0x5A, 0x5B, 0x00, 0x05, (byte) 0xFF};
*STOP = {(byte) 0xFF, 0x5A, 0x5B, 0x00, 0x03, (byte) 0xFF};
这是蓝牙发送的,我按手机同一个按钮,有时会出现:
0
1

0
3

不然就是8个F
即使我把蓝牙拔下来,也是不断的8个F

怎么回事?

i7456 发表于 2014-10-3 23:44:38

本帖最后由 i7456 于 2014-10-3 23:46 编辑

你的程序有问题。
参考这里http://arduino.cc/en/Serial/Available

angel725 发表于 2014-10-4 14:27:32


void cmd(){
int n ;
for(n=0;n<=5;n++){
    BT_val = Serial.read();
    BT_array=BT_val;
}
}谢谢找到问题了,接收写的不对。

发送的是FORWARD = {(byte) 0xFF, 0x5A, 0x5B, 0x00, 0x01, (byte) 0xFF};
接收要怎么才能正常收啊,
试了半天,也没弄对。。

i7456 发表于 2014-10-4 23:01:03

本帖最后由 i7456 于 2014-10-4 23:02 编辑


void cmd(){
if (Serial1.available()) //判断串口缓冲区有数据时再读数据
for(int n=0;n<=5;n++){
    BT_val = Serial.read();
    BT_array=BT_val;
}
}

angel725 发表于 2014-10-8 18:36:03

已经解决了
页: [1]
查看完整版本: 这个蓝牙arduino接收,串口怎么总是“FFFFFFFF”