这个蓝牙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:46 编辑
你的程序有问题。
参考这里http://arduino.cc/en/Serial/Available
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:02 编辑
void cmd(){
if (Serial1.available()) //判断串口缓冲区有数据时再读数据
for(int n=0;n<=5;n++){
BT_val = Serial.read();
BT_array=BT_val;
}
}
已经解决了
页:
[1]