最近在做一个蓝牙一主多从的通讯。所谓的一主多从(我自己定义的)----主机:会自己搜索身边的蓝牙设备。从机:只能等待主机对自己进行搜索,即等待被发现。从机是不具备也不会对身边的蓝牙设备进行搜索的。
例如:A为主机,B、C均为从机。当A跟B通讯完成后,就将A跟B断开,通过拉高A的控制引脚,让A进入AT指令模式。这样就可以向A蓝牙发送“AT++DISC
”断开连接指令。然后再发送“AT+LINK=<B的ID>
”。最后拉低主蓝牙模块的控制引脚,让它进入正常的通讯模式。
现在碰到的问题是,前两次断开与连接均成功,但到第三次时,却不成功。这个不知是什么问题。对延时时间进行不断的修改,都无法让断开连接通过第三次。如果不是在发送断开指令这里卡住,就是在连接指令这里卡住。无法成功的原因是主蓝牙模块没有应答。所以一直在死循环。
我是用一个语句在等待主蓝牙模块应答的----while(!buff_flag);
当接收到“OK
”里,标志位buff_flag就会置1,就会通过这个死循环。我有试过一直发送命令的。
do
{
uart_senddata("AT+DISC
");//或者是uart_senddata(“AT+LINK=<A或B的ID>”
);
}while(!buff_falg);
请问有木有人知是什么原因???
在这里先多谢啦!!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>