极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12696|回复: 4

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

[复制链接]
发表于 2018-1-4 09:20:40 | 显示全部楼层 |阅读模式
近期测试蓝牙模块,遇到一个小问题,程序如下:
char aa;
void setup()
{
Serial.begin(9600);
}

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2018-1-4 11:59:08 | 显示全部楼层
我看了一下程序,程序里面没有写,一收到'A',就循环输出OK这句话,只是说,一收到‘A’,就输出一次OK这句话诶!
你描述的具体的效果是:一收到'A',就循环输出了4句OK的话?还是说一收到‘A’,就输出一次OK?
回复 支持 反对

使用道具 举报

发表于 2018-1-4 12:19:00 | 显示全部楼层
查一下蓝牙部分的线路吧,我用UNO+PC直接连接的,程序没问题,A   一直输出,B   停了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 13:20:03 | 显示全部楼层
谢谢你的关注。问题是这样,LOOP以下的语句用该是循环执行的,当手机输入'A'后,全局变量aa被赋值为A。再次运行到LOOP循环执行,aa应该不会被清零,应该继续执行屏显语句。因此陷入困惑。
回复 支持 反对

使用道具 举报

发表于 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 am  OK");
      }
  }
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 23:34 , Processed in 0.082675 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表