主机
  u2_printf("AT+ROLE=1\r\n");           //设置主机模式
  HAL_Delay(500);
  u2_printf("AT+BONDNAME=slave_1\r\n"); //主机绑定从机蓝牙名字
  HAL_Delay(500);
从机
  u2_printf("AT+NAME=slave_1\r\n");     //从机设置蓝牙名字
  HAL_Delay(500);
  u2_printf("AT+ROLE=2\r\n");           //设置从机模式
  HAL_Delay(500);
51
主机
    Timer0Init();
    Uart_Init();                                    //串口初始化
    sprintf(ECB02_buf, "AT+ROLE=1\r\n");    //设置为主机
    Uart_Sent_Str(ECB02_buf);
    Delay_function(500);
    sprintf(ECB02_buf, "AT+BONDNAME=slave_1\r\n");  //主机绑定从机名字
    Uart_Sent_Str(ECB02_buf);
    Delay_function(500);


    if(flag_res == 1)                                 //接收从机发送过来的数据
    {
        flag_res = 0;
        if(Uart_buf[0] == 0xA1)
        {
            temp = Uart_buf[1]*10 + Uart_buf[2];
            distance = Uart_buf[3]*10 + Uart_buf[4];
        }
    }
从机
    Uart_Init();                                    //串口初始化
    sprintf(ECB02_buf, "AT+FACTORY\r\n");
    Uart_Sent_Str(ECB02_buf);
    Delay_function(500);
    sprintf(ECB02_buf, "AT+NAME=slave_1\r\n");
    Uart_Sent_Str(ECB02_buf);
    Delay_function(500);
    sprintf(ECB02_buf, "AT+ROLE=2\r\n");
    Uart_Sent_Str(ECB02_buf);
    Delay_function(50);                        //延时50ms


        temp = Ds18b20_read_temp();                                    //获取温度
        distance = Hcsr04_GetDistance(temp/10);            //获取距离
        send_buf[0] = 0xA1;
        send_buf[1] = temp/10;                            //解析温度百位
        send_buf[2] = temp%10;                                //解析温度个位
        send_buf[3] = distance/10;                        //解析距离个位
        send_buf[4] = distance%10;                        //解析距离个位
        Uart_Sent_Str(send_buf);                                //发送距离个位

 

1,从机设置蓝牙名字 这条命令仅从机模式有效
AT+NAME=slave_1
查询蓝牙名字 AT+NAME?
2,设置主从机模式
AT+ROLE=1 主机模式
AT+ROLE=2 从机模式
查询主从机模式 “AT+ROLE?\r\n”“+ROLE:Central\r\nOK\r\n” 或"+ROLE:Peripheral\r\nOK\r\n"
3,主机绑定从机蓝牙名字 这条命令仅主机模式有效
AT+BONDNAME=slave_1
注:设置绑定从机的蓝牙名字,长度 1-20 字节;这条命令仅主机模式有效。
查询主机绑定的从机名字 "AT+BOND?\r\n" “+BOND:\r\nOK\r\n” 或“+BOND:NAME,X\r\nOK\r\n” 或“+BOND:MAC,X\r\nOK\r\n”
设置主从机模式
“AT+ROLE=X\r\n”
“OK\r\n”
注:“AT+ROLE=2\r\n“,设置模块为从机;“AT+ROLE=1\r\n“,设置模块为主机。
“AT+ROLE=0\r\n“, 模块主从机模式通过 ROLE 引脚配置。 ECB02S1、ECB02S2、ECB02S3
默认通过 ROLE 引脚配置,其他型号默认是从机。模块只在上电初始化时检测 ROLE 引脚
电平。
查询主从机模式
“AT+ROLE?\r\n”
“+ROLE:Central\r\nOK\r\n”
"+ROLE:Peripheral\r\nOK\r\n"
注:Central 代表主机模式,Peripheral 代表从机模式。手机与智能硬件进行蓝牙连接,
手机为主机,智能硬件为从机。
查询蓝牙名字 这条命令仅从机模式有效
"AT+NAME?\r\n"
“+NAME:X\r\nOK\r\n”
设置蓝牙名字 这条命令仅从机模式有效
"AT+NAME=X\r\n"
“OK\r\n”
注:蓝牙名字最长 20 个字节。如果想设置中文的蓝牙名字,需要使用 URL 编码,一
个中文占用 3 个字节,例如修改蓝牙名字为“易加物联”,需要发送给模块的十六进制
数据为
41542B4E414D453D E69893 E58AA0 E789A9 E88194 0D0A
第一部分为 AT 命令的头部,中间四个部分为易加物联四个字,最后一部分是 AT 命令
的结尾。这条命令仅从机模式有效。
查询 MAC 地址
"AT+MAC?\r\n"
“+MAC:XXXXXXXXXXXX\r\nOK\r\n”
注:这条命令仅从机模式有效。
设置 MAC 地址
"AT+MAC=XXXXXXXXXXXX\r\n"
“OK\r\n”
注:这条命令仅从机模式有效。
查询从机绑定 这条命令仅主机模式有效
"AT+BOND?\r\n"
“+BOND:\r\nOK\r\n”
“+BOND:NAME,X\r\nOK\r\n”
“+BOND:MAC,X\r\nOK\r\n”
注:模块工作在主机模式,可以绑定从机的蓝牙名字或 MAC 地址,这样会使模块工
作在自动模式,上电后模块自动搜索周围的从机,直到搜索到绑定的从机,然后自动进
行蓝牙连接,如果蓝牙连接发生断开,模块会自动重新搜索,重新连接。无需再使用 AT
命令去手动操作。 “+BOND:\r\nOK\r\n”表示没有绑定从机,“+BOND:NAME,X\r\nOK\r\n”
表示绑定的是从机蓝牙名字,“+BOND:MAC,X\r\nOK\r\n”表示绑定的是从机 MAC 地址;默
认没有绑定任何从机;这条命令仅主机模式有效。
清除从机绑定 这条命令仅主机模式有效。
"AT+BONDC\r\n"
“OK\r\n”
注:清除主机所绑定的从机信息,模块恢复到手动模式;这条命令仅主机模式有效。
设置绑定从机蓝牙名字 这条命令仅主机模式有效。
"AT+BONDNAME=X\r\n"
“OK\r\n”
注:设置绑定从机的蓝牙名字,长度 1-20 字节;这条命令仅主机模式有效。
设置绑定从机 MAC 地址 这条命令仅主机模式有效。
"AT+BONDMAC=X\r\n"
“OK\r\n”
注:"AT+MAC=F1F2F3F4F5F6\r\n",设置绑定的从机 MAC 地址;这条命令仅主机模式
有效。

发表回复

后才能评论