本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:
第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。
第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等
第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等
第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL)
第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等
第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展
第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。
另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。
CSDN学院链接(进入选择你想要学习的课程):
cod就是设备类型(class of device),设备在蓝牙初始化的时候就要声明自己的设备类型,对方inquiry的时候会扫描到你的设备类型,并做对应的显示,典型的应用如android手机的搜索前面显示的小图标,如图前面的这排图标都是根据cod来显示的。
另外,需要注意的是,协议一定要跟cod匹配,比如你想做一个蓝牙键盘,不能注册audio的cod,否则很有可能出现奇奇怪怪的问题,此部分尤其注意。
Cod的结构如上图,一共有3个byte,其中一共分为4个部分
有如下几种值:
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | |
0 | 0 | 0 | ||
0 | 0 | 0 | 0 | |
0 | 0 | 0 | ||
0 | 0 | 0 | ||
0 | 0 | |||
0 | 0 | 0 | 0 | |
0 | 0 | 0 | ||
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | |||
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 |
0 | 0 | |
0 | 0 | |
0 | ||
0 | 0 | |
0 | ||
0 | ||
0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | |||
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | |||
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | |||
0 | 0 | 0 | |||
0 | 0 | ||||
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | 0 | ||
0 | 0 |
0 | |
0 | |
0 | 0 | 0 | 0 |
0 | 0 | 0 | |
0 | 0 | 0 | |
0 | 0 | ||
0 | 0 | 0 | |
0 | 0 | ||
0 | 0 | ||
0 | |||
0 | 0 | 0 | |
0 | 0 | ||
0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | |||
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | |||
0 | 0 | 0 | 0 | ||
0 | 0 | 0 | |||
0 | 0 | 0 | |||
0 | 0 | ||||
下面我们来举几个例子来说明下(在举例子之前推荐一个文章可以生成cod)
我们来看个btsnoop对应下看看我们分析的对不对
我们也来用我上面给的连接生成下看看是否跟我们一样,来加深下印象
iPhone搜不到蓝牙耳机设备怎么办
最近见到好几个朋友提问,怎么iPhone手机搜不到蓝牙耳机设备,没法接连。试试这几个步骤就可以连接上你的蓝牙耳机设备了!
iPhone手机对蓝牙耳机的.要求有点高…稍微上点档次的才能找到…有的耳机是找不到的…不管你的是不是好耳机…试试这样的操作。
1,必须先打开手机的蓝牙…让手机处于搜索状态。
2,按住蓝牙耳机开关键5秒左右(这个一般是接听电话的按键)。
3,一般情况下已经找到你的蓝牙耳机了,(除非是一些不支持iPhone手机或者杂牌的)。
4,有时需要输入配对的密码,
一般是:0000。好了就这么简单。
步骤一定要对不然就和我昨天一样试了半个小时都不行。
【iPhone搜不到蓝牙耳机设备怎么办】相关文章: