大学生
最后登录1970-1-1
在线时间 小时
注册时间2017-1-4
|
在看火哥的程序,没有视频,直接看代码,好累人,尤其是英文不好,火哥还写了那么多的变量,,,,,,,,,,,
我就一点一点看,给每一行代码都上了注释
在看到切换模式的时候,出现了点问题,
就是当按下KEY1按键的时候,蓝牙的模式会切换,原来的程序默认是从模式,
我在看模式变化的那一段时遇见了个问题,
//如果KEY1被单击,切换master-slave(主)模式
if( Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN) == KEY_ON )
{
hc05_role=!hc05_role;
if(hc05_role == 0)
{
HC05_Send_CMD("AT+RESET\r\n",1);
delay_ms(800);
if(HC05_Send_CMD("AT+ROLE=0\r\n",1) == 0)
{
delay_ms(100);
sprintf(hc05_mode,"SLAVE");
HC05_INFO("hc05_mode = %s",hc05_mode);
sprintf(hc05_name,"HC05_%s_%d",hc05_mode,(uint8_t)rand());
sprintf(hc05_nameCMD,"AT+NAME=%s\r\n",hc05_name);
if(HC05_Send_CMD(hc05_nameCMD,1) == 0)
{
HC05_INFO("设备名字被更改为:%s",hc05_name);
sprintf(disp_buff,"Device name: %s",hc05_name);
LCD_SetColors(RED,BLACK);
ILI9341_Clear(0,60,240,20);
ILI9341_DispString_EN( 5, 60,disp_buff );
}
else
{
HC05_ERROR("更改名字失败");
LCD_SetColors(BLUE,BLACK);
ILI9341_Clear(0,60,240,20);
ILI9341_DispString_EN( 5, 60,"Rename fail!" );
}
HC05_Send_CMD("AT+INIT\r\n",1);//初始化 SPP规范库
HC05_Send_CMD("AT+CLASS=0\r\n",1);//设置设备类
HC05_Send_CMD("AT+INQM=1,9,48\r\n",1);//设置查询访问模式
//清空蓝牙设备列表
bltDevList.num = 0;
}
就是这一段,当第一次按下按键的时候,蓝牙是从从模式转变成主模式的,然后在while循环中执行主模式的操作,
但是代码中有一部分是解觉从主模式转变成从模式的处理,
当有变回从模式的时候,执行了一个HC05_Send_CMD("AT+ROLE=0\r\n",1) == 0,就相当于给蓝牙发送命令说要改变成从模式
但是为什么变为主模式的时候没有相关操作呢
|
|