野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7994|回复: 4

关于火哥的蓝牙程序的一些看不懂的地方

[复制链接]
发表于 2017-8-8 23:13:43 | 显示全部楼层 |阅读模式
在看火哥的程序,没有视频,直接看代码,好累人,尤其是英文不好,火哥还写了那么多的变量,,,,,,,,,,,
我就一点一点看,给每一行代码都上了注释
在看到切换模式的时候,出现了点问题,
就是当按下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,就相当于给蓝牙发送命令说要改变成从模式
但是为什么变为主模式的时候没有相关操作呢
回复

使用道具 举报

发表于 2017-8-9 08:50:43 | 显示全部楼层
key2是切换成主模式,key1只是给蓝牙换个名字
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-9 12:37:51 | 显示全部楼层
flyleaf 发表于 2017-8-9 08:50
key2是切换成主模式,key1只是给蓝牙换个名字

KEY2 是更改名字
KEY1是变换模式
那个代码出现改名字的是因为模式更改 才会出现名字的变动
我是今天同学说候面也 有代码 修改成主模式的
没有看到,问题解决了
谢谢你了
回复 支持 反对

使用道具 举报

发表于 2017-8-23 17:06:21 | 显示全部楼层
问一下,火哥的蓝牙相关源码或者视频教程在哪呢
回复 支持 1 反对 0

使用道具 举报

发表于 2017-11-20 11:31:08 | 显示全部楼层
学习中  帮顶
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-27 18:46 , Processed in 0.070955 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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