巡航66 发表于 2018-1-4 09:20:40

关于arduino 使用蓝牙模块的小问题

近期测试蓝牙模块,遇到一个小问题,程序如下:
char aa;
void setup()
{
Serial.begin(9600);
}

void loop()
{
while(Serial.available())
{
      aa=Serial.read();
   }
if(aa=='A')
{
       Serial.println("Hello I amOK");
   }
}
手机连通蓝牙模块,打开串口监视器,输入A。按说aa是全局变量,程序运行 ,aa被赋值 “A“ 后,程序重复运行 应该一直输出("Hello I amOK")。但实际上只输出四次,就停止了。请高手们指点一下,原因是什么?多谢!!

董董soul 发表于 2018-1-4 11:59:08

我看了一下程序,程序里面没有写,一收到'A',就循环输出OK这句话,只是说,一收到‘A’,就输出一次OK这句话诶!
你描述的具体的效果是:一收到'A',就循环输出了4句OK的话?还是说一收到‘A’,就输出一次OK?

wwwusr 发表于 2018-1-4 12:19:00

查一下蓝牙部分的线路吧,我用UNO+PC直接连接的,程序没问题,A   一直输出,B   停了。

巡航66 发表于 2018-1-4 13:20:03

谢谢你的关注。问题是这样,LOOP以下的语句用该是循环执行的,当手机输入'A'后,全局变量aa被赋值为A。再次运行到LOOP循环执行,aa应该不会被清零,应该继续执行屏显语句。因此陷入困惑。

duanliangcong 发表于 2018-1-10 12:09:30

char aa;
void setup()
{
Serial.begin(9600);
}

void loop()
{
while(Serial.available())
{
      aa=Serial.read();
      if(aa=='A')
      {
       Serial.println("Hello I amOK");
      }
}
}
页: [1]
查看完整版本: 关于arduino 使用蓝牙模块的小问题