查看: 415|回复: 4
打印 上一主题 下一主题

求助!怎么在跳出执行!

[复制链接] qrcode

30

主题

31

帖子

94

积分

注册会员

Rank: 2

积分
94
楼主
跳转到指定楼层
发表于 2015-10-14 03:50 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void loop() 

  while(1){

if(Serial.available())//蓝牙连接成功



 { BT_COM=Serial.read();
  switch(BT_COM)
  {
    case\'1\': buzzeron();
    break;
    case\'0\':buzzeroff();
    break;
  
}}
  else{
  
    buzzeron();
  }}

}

代码如下,只是蓝牙没连接时执行else,连接后还是在执行else,怎么让它跳出来执行if里面的语句?

回复

使用道具 举报

1

主题

109

帖子

21

积分

新手上路

Rank: 1

积分
21
沙发
发表于 2015-10-14 04:20 PM | 只看该作者

建议你先把if里面的语句改简单点,蓝牙连接成功,蜂鸣器不响;没连接,蜂鸣器响。这样试试看,什么现象。

你这样多引入一个判断BT_COM的值,分析起来,不好确定问题在哪。


回复 支持 反对

使用道具 举报

0

主题

78

帖子

10

积分

新手上路

Rank: 1

积分
10
板凳
发表于 2015-10-14 04:20 PM | 只看该作者
在你蓝牙连接函数里增加一个完成标志位,初始位“0”,蓝牙连接完成后就为“1”;然后在你的if(Serial.available())判断中增加一个完成判断就可以了。
回复 支持 反对

使用道具 举报

0

主题

80

帖子

4

积分

新手上路

Rank: 1

积分
4
地板
发表于 2015-10-16 10:44 PM | 只看该作者

改成下面的了

改了以后,连接之前在响,连接发送随意指令不响,但是我断开连接后还是不响了,我是想达到连接不想断开想的目的,请问该怎么做修改?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

161

主题

519

帖子

1069

积分

金牌会员

Rank: 6Rank: 6

积分
1069
5#
发表于 2015-10-16 11:38 PM | 只看该作者

你这是蓝牙2.0的模块吧,我觉得这是因为蓝牙连接成功后,串口缓冲器中有了数据,之后数据一直没被读出,导致数据一直存在,所以才会一直响。

通过Serial.available();来判断蓝牙是否连接成功似乎不太合适。

回复 支持 反对

使用道具 举报

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

本版积分规则

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