我和蓝牙BT,BLE有一腿

你好,很不幸,你被一个标题骗了进来,可能我以后还会骗你,我这篇文章主要是写蓝牙相关的,不会涉及技术细节,主要是总结一些概念,这些概念会帮助你了解蓝牙知识,帮助你在面试或者聊天的时候章显自己的技术优势,提高自己的江湖地位。

我有两次的机会都跟蓝牙在一起奋斗了很长一段时间,这也是为什么很多读者看到我用Nordic,当时也是从0开始做项目,把Nordic里面的坑都一个一个的填平过来的。

后来有机会又玩了ESP32,里面有蓝牙,也有WIFI,这也是为什么我之前有文章写到ESP32相关的,我特别想推荐这个芯片,一个是因为他价格低,一个是因为这个又能玩WIFI,又能玩BLE,而且还跑的是Freertos,对入门的同学非常有帮助,再说一下价格,这个价格可以吊打很多开发板。这个是一个国产芯片,而且是百度投资的,而且上市了,我当时跟他们的技术人员说,百度做了一件漂亮的投资。

我有一个朋友,我开始接触Nordic他就在做这方面了,现在还一直在做,期间我给他推荐了好几次生意,但是每次都没成交,比较尴尬。



#经典蓝牙和低功耗蓝牙

经典蓝牙我们一般说的是BT

低功耗蓝牙我们一般说成BLE

                       

经典蓝牙和BLE层次区分

其中Dual Mode 就是双模,也就是同时支持两种模式

                       

关于2.4G和5G,有一个比较有意思的图片,刚刚在网上看到的

           

#蓝牙规范

蓝牙分为核心规范和应用规范,一个偏底层一个偏应用,底层是把道路铺设好,应用是在这样的路上发明了各种汽车。

Core Specification(核心规范):

用于规定蓝牙设备必须实现的通用功能和协议层次。它由软件和硬件模块组成,两个模块之间的信息和数据通过主机控制接口(HCI)的解释才能进行传递。

Profiles(蓝牙应用规范):

它从应用场景的角度为蓝牙技术的使用制定了不同的规范。这也是和大众日常生活接触最多的一部分。蓝牙支持很多Profiles,下文将介绍几种使用最广泛的蓝牙应用规范。

                       

                       

上面是应用,下面是核心。

#蓝牙应用profile

蓝牙的应用很多,比如ibecon也是蓝牙的一种应用,我这里说A2DP,是因为我们做项目要用到这个,现在的很多手机支持这个功能,有的不支持,我们需要用,我就查了,放这里给大家看看。


##A2DP

Advanced Audio Distribution Profile(蓝牙音频数据传输的profile)。

A2DP中定义了两种role: Source and Sink。发送音频流的设备是source,接收音频流的设备是sink,比如手机是source,蓝牙耳机是sink。

A2DP依赖与传输层协议AVDTP—Audio/Video Distribution Transport Protocol。

A2DP还规定了音频的编码格式,其中SBC是必须支持的,可选的格式有MPEG-1, MPEG-2, MPEG-4, AAC and ATRC, 另外也支持厂商扩展的格式,比如高质量的音频编码格式apt-X。

              

在安卓里面我们和apk进行通信,其中包括hardware.so,底层,硬件,其中涉及到音频就需要和audio flinger耦合在一起。 

       

              

  回复「 篮球的大肚子」进入技术群聊

回复「1024」获取1000G学习资料

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python之路,week03 - Python基础3

本节内容 函数与函数式编程函数式编程之参数详解局部变量与全局变量作用域嵌套函数 递归函数式编程介绍高阶函数内置函数1. 函数与函数式编程 1.面向对象:华山派---》类---》class 2.面向过程:少林派---》过程---》def 3.函数式编程:逍遥派--…

循环链表、双链表

文章目录循环链表、双链表双链表插入删除单循环链表双循环链表习题线性表实现方法比较循环链表、双链表 双链表 插入 删除 单循环链表 双循环链表 习题 线性表实现方法比较

[芦半山]Binder的异常机制

文中代码分析基于Android 10.0 (Q)两个进程之间若是要进行Binder通信,那么发起通信的一端我们就称它为Client进程。Client进程调用每一个代理对象的方法,本质上都是一次跨进程通信。如果这个方法是同步方法(非oneway修饰)&#xf…

bufg和bufgp_如何将自己写的verilog模块封装成IP核(一)

平台与材料一个写好的工程,综合通过,不用布局布线,ISE或Vivado皆可。如果是ISE,需要在properties里取消选中 iobuf 。这样就只能被当做内部模块调用了。Vivado步骤打开Vivado,创建一个工程Tools -> Create or packa…

消息中间件核心实体(1)

接上一篇《消息中间件核心实体(0)》,这一篇继续介绍消息中间件中的一些实体。 上一篇主要是Message、Topic、TopicMeta和Queue这样最基础的实体,这几篇介绍一些发送和消费的过程中会涉及到的实体和组件。 1. 发送 1.1 增强Message属性 Message一般只包含…

sklearn(2

算法库顶层设计 SKLEARN监督学习模块 近邻算法 neighbors支持向量机SVM岭回归 kernal_ridge判别分析discriminant_analysis广义线性模型linear_model集成方法ensemble决策树tree朴素贝叶斯naive_bayes交叉分解cross_decompostition高斯过程gaussian_process多层神经网络neural…

sox处理mp3_SoX 音频处理工具使用方法

一、简介SoX 可以读取和写入常见格式的音频文件,并在此过程中选择性的加入一些声音效果。它可以组合多个输入源及合成音效,在许多系统上也可以作为音频播放器或多轨录音机使用。SoX 工具在大部分 Linux 系统上都可以直接通过软件包管理器安装(如sudo apt…

该死的装修

周末了,没有写技术文~因为最近的新房子需要装修,谈了几个装修公司,不知道为什么,我对装修这个事情非常抵触,繁琐的事情太多了,还没有装修,我就觉得有很多事情要斗争。因为家里有小孩&#xff0c…

SKLEARN模型选择

数据集划分方法 K折交叉验证法 将全部训练集S分成k个不相交的子集,假设S中的训练样例子数为m,那么每一个子集有m/k个训练样例,相应子集称作{s1,s2……sk}每次从分好的子集里面,拿一个作为测试集,其他k-1作为训练集在k…

SpringBoot(十) :邮件服务

原文出处: 纯洁的微笑 springboot仍然在狂速发展,才五个多月没有关注,现在看官网已经到1.5.3.RELEASE版本了。准备慢慢在写写springboot相关的文章,本篇文章使用springboot最新版本1.5.3进行开发。 发送邮件应该是网站的必备功能之…

python中order函数_order by排序

作者Toby,持牌照消费金融模型经理,发明国家算法专利,国内最大医药数据中心数据挖掘部门负责人!和重庆儿科医院,中科院教授,赛柏蓝保持慢病数据挖掘项目合作!清华大学,百度,腾讯&…

被该死的Openssl编译嘲讽了一个下午

昨晚比较尴尬,下班的时候已经很晚了,到半路突然想起来没有带钥匙回去,赶紧折返回公司拿钥匙,在已经很晚的路上我们又多花费了20分钟,到家已经挺晚了,具体多少点我都不好意思说,我要是说出来&…

JavaScript中本地对象、内置对象和宿主对象

http://www.jianshu.com/p/a52e6e183427 http://blog.csdn.net/weiyastory/article/details/52837466 http://www.cnblogs.com/qigang/p/3520974.html 在ECMAScript中,所有对象并非同等创建的。 一般来说,可以创建并使用的对象有3种:本地对象…

类的真正形态

类的真正形态 类的关键字 struct在C语言中已经有了自己的定义,必须继续兼容 在C中提供了新的关键字,class用于类定义 class和struct用法是完全相同 struct和class区别 用struct定义时,所有成员默认为public 用class定义时,所…

docker代理设置ssl证书_docker - 设置HTTP/HTTPS 代理

1、设置代理原因因公司安全限制,所有外网需配置代理后才可上网,但是因为宿主机上设置过代理,并未太过多注意此问题,之后run时报如下错误:# docker run hello-worldUnable to find image hello-world:latest locallydoc…

暴力修改SElinux权限

平台版本 SDK版本 版本名称 9.0 28 Pie (Android P) 8.1 27 Oreo(Android O)(奥利奥) 8.0 26 Oreo(Android O)(奥利奥) 7.1 25 Nougat(Android N)(牛轧糖) 7.0 24 Nougat(Android N)(牛轧糖&…

分类器

sklearn分类器性能指标 分类器性能评估指标 只限于二元单元标签分类问题 可用于二元多标签分类问题的评估指标 如何将二元分类指标扩展到多类或多标签问题中去 可用于多类分类问题的评估指标(紫色的可用于多标签问题) accuracy_score准确率 函数计算分类…

Cucumber+Rest Assured快速搭建api自动化测试平台

转载:http://www.jianshu.com/p/6249f9a9e9c4 什么是Cucumber?什么是BDD?这里不细讲,不懂的直接查看官方:https://cucumber.io/  什么是Rest Assured?传送门:https://github.com/rest-assured…

毕业设计论文选题系统系统用例图_基于UML的毕业设计管理系统的分析与设计

基于UML的毕业设计管理系统的分析与设计毕业设计是实现本科教学培养目标的重要环节,从选题到答辩一般需要四至六个月的时间,其间工作量很大,尤其需要保留大量的文件,以便于管理者对毕业设计工作进行监督。传统的、人工的方式管理各…

让这个该死的服务跑起来了~

#前言被该死的Openssl编译嘲讽了一个下午之前的文章说了我的那个编译的问题,这里说下,知识点有点零散,最后的解决也是一个同事提示,感觉也有点奇葩的赶脚。到目前为止,我现在感受到了写文章的好处,昨晚的问…