烽火社区

标题: 求助!怎么在跳出执行! [打印本页]

作者: 爱萝莉丶IC    时间: 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里面的语句?


作者: Monchouchou    时间: 2015-10-14 04:20 PM

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

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



作者: TonyYU    时间: 2015-10-14 04:20 PM
在你蓝牙连接函数里增加一个完成标志位,初始位“0”,蓝牙连接完成后就为“1”;然后在你的if(Serial.available())判断中增加一个完成判断就可以了。
作者: LEAWISEMHB520    时间: 2015-10-16 10:44 PM

改成下面的了

[attach]36414[/attach]

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


作者: huangna    时间: 2015-10-16 11:38 PM

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

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






欢迎光临 烽火社区 (https://bbs.cnecport.com/) Powered by Discuz! X3.2