在Arduino中处理单个串行端口上的多个事件

时间:2017-09-22 11:06:06

标签: arduino gps serial-port bluetooth-lowenergy gsm

我正在开发一个Arduino项目,我只使用GPS,GSM和蓝牙的集成模块。 我在单个串行端口上得到所有这些设备的响应,其中蓝牙和SMS事件可以在任何时间发生,但是当它们发生时,它会扰乱串行端口数据上的当前数据,并且不会检测到任何新的蓝牙事件或任何新的短信事件。

    void loop(){
  while((digitalRead(6)==LOW)&&(q==0));
  { 
delay(1000);
Serial.println("Reading SMS");
    while ( Serial3.available() > 0) Serial3.read();   // Clean the input buffer 
       memset(response,'\0',250);
      memset(sms,'\0',11);
      memset(number,'\0',14);
    readsms();
      q++;
  }


  if((digitalRead(6)==HIGH))
{
 q=0;
perform the normal operation
}

  while(digitalRead(7)==HIGH);
if(digitalRead(7)==HIGH)
{
  blepair();    //function to pair a new device with bluetooth
  delay(1000);
  }

if(digitalRead(7)==LOW)
{

  blestatus();     //monitoring any new event via bluetooth
  delay(1000);
 }

我在同一串口上获得的所有数据。 有哪些选项可以解决这个问题。 我非常感谢你早期的回复。

0 个答案:

没有答案