Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bluetooth 为什么;Serial1.available()>;0“;被处决几次?_Bluetooth_Arduino_Serial Port_Android Bluetooth - Fatal编程技术网

Bluetooth 为什么;Serial1.available()>;0“;被处决几次?

Bluetooth 为什么;Serial1.available()>;0“;被处决几次?,bluetooth,arduino,serial-port,android-bluetooth,Bluetooth,Arduino,Serial Port,Android Bluetooth,我正在运行一些测试代码来检查arduino和蓝牙设备的串行通信。因此,我编写了以下测试代码: void setup(){ Serial.begin(9600); Serial1.begin(9600); } void loop(){ if(Serial1.available()>0){ Serial.println("magi interrupt"); delay(1000); Serial1.end(); Serial1.begin(9600); }

我正在运行一些测试代码来检查arduino和蓝牙设备的串行通信。因此,我编写了以下测试代码:

void setup(){
Serial.begin(9600);
Serial1.begin(9600);
}
void loop(){
if(Serial1.available()>0){
      Serial.println("magi interrupt");
      delay(1000);
  Serial1.end();
  Serial1.begin(9600);
 }
据我所知,如果我通过蓝牙设备发送数据,那么将执行if条件,然后Serial1.end()禁用此串行通信。之后,当执行Serial1.begin(9600)时,再次设置Serial1

不应该是Serail1。只要我不发送任何数据,available()就不再大于零

但当我执行此代码时,如果条件被执行多次,尽管我只发送一次数据(2或3位数据)。为什么会发生这种情况?为什么只有几次


若我忽略“Serial1.end();Serial1.begin(9600);”,那个么在我发送任何消息之后,若条件开始在无限循环中执行。这是为什么

从我在核心代码中看到的情况以及从长延迟中假设的情况来看,这不应该发生,但是:不要运行
end()
&
begin()
尝试清除实际接收数据,看看是否仍然存在相同的问题:
while(Serial1.read()!=-1)启动和停止Serial1有什么原因吗?实际上我尝试了Serial1.flush(),但没有帮助。如果在我发送任何数据后在无限循环中执行start语句。flush仅清除TX缓冲区,则我发布的循环将清除RX缓冲区。还可以尝试通过串口打印serial1上的数据,以便查看数据是否正在更改或复制。