![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝牙协议栈手册详解
happygrilclh
物联网
展开
-
蓝牙协议栈(一、快速开始)
一般工具大多数端口使用常规Makefile来构建示例。在基于Unix的系统上,通常会安装git,make和Python。如果没有,请使用系统的数据包管理器进行安装。在Windows上,没有数据包管理器,但是可以快速手动下载和安装所有需要开发数据包。你需要: 适用于Windows的Python。使用官方安装程序时,请确认将Python添加到Windows路径。 MSYS2...翻译 2019-09-11 17:39:07 · 1559 阅读 · 0 评论 -
蓝牙协议栈(二、BTstack架构)
与任何其他通信堆栈一样,BTstack是一组相互交互的状态机。每个协议和服务都有一个或多个状态机。该架构的其余部分遵循以下基本设计准则: 单线程设计- BTstack不使用或需要多线程来处理数据源和定时器。相反,它使用单个运行循环。 无阻塞- 如果需要蓝牙处理,其结果将通过注册的数据包处理程序作为事件传递。 没有人为限制的缓冲区/池- 传入和传出的数据包不会排队。...翻译 2019-09-11 17:40:55 · 3305 阅读 · 0 评论 -
蓝牙协议栈(三、如何配置Btstack)
BTstack实现了一组蓝牙协议和配置文件。要连接其他蓝牙设备或提供蓝牙服务,必须正确配置BTstack。BTstack的配置既可以在编译时完成,也可以在运行时完成: 编译时配置: adjustbtstack_config.h- 此文件描述系统配置,使用的功能以及内存配置 将必要的源代码文件添加到项目中 运行时配置: 蓝牙芯片组 ...翻译 2019-09-11 17:41:46 · 4097 阅读 · 0 评论 -
蓝牙协议栈(四、协议)
BTstack是一种模块化双模蓝牙堆栈,支持蓝牙基本速率/增强日期速率(BR / EDR)以及蓝牙低功耗(LE)。BR / EDR技术也称为经典蓝牙,可在专为高数据速率设计的设备之间提供强大的无线连接。相比之下,LE技术具有更低的吞吐量,但能耗更低,连接设置更快,并且能够并行连接更多设备。无论是Classic还是LE,蓝牙设备都会实现一个或多个蓝牙配置文件。蓝牙配置文件指定如何使用一个或多个蓝...翻译 2019-09-11 17:43:23 · 3462 阅读 · 0 评论 -
蓝牙协议栈(五、(配置文件/剖面))
在下文中,我们将解释如何在BTstack中使用各种蓝牙配置文件。GAP - 通用访问配置文件:经典GAP配置文件定义设备如何相互查找并为其他配置文件建立安全连接。如前所述,GAP功能在和之间分配。请检查两者。变得可被发现必须将远程未连接的蓝牙设备设置为“可发现”,以便被执行查询扫描的设备看到。要变为可发现,应用程序可以使用输入参数1调用gap_discoverable_contr...翻译 2019-09-11 17:45:13 · 1506 阅读 · 0 评论 -
蓝牙协议栈(六、芯片组)
在本章中,我们首先解释蓝牙芯片组如何物理连接,然后提供有关流行的蓝牙芯片组及其与BTstack一起使用的信息。HCI接口主机(计算机或MCU)与主机控制器(实际蓝牙芯片组)之间的通信遵循主机控制器接口(HCI),如下所示。HCI定义了如何交换命令,事件,异步和同步数据包。异步数据包(ACL)用于数据传输,而同步数据包(SCO)用于带有耳机和免提配置文件的语音。HCI H2在桌面...翻译 2019-09-11 17:46:28 · 5357 阅读 · 0 评论 -
蓝牙协议栈(七、移植到其他平台)
在本节中,我们将重点介绍需要针对不同硬件平台进行调整的BTstack组件。时间抽象层BTstack需要一种方法来了解传递时间。btstack_run_loop_embedded.c支持两种不同的模式:系统标记或具有毫秒分辨率的系统时钟。BTstack的时序要求非常低,因为只需要处理第二范围内的蓝牙超时。刻度硬件抽象如果您的平台不需要系统时钟或者您已经有系统时钟(因为它是ARM C...翻译 2019-09-11 17:47:56 · 1797 阅读 · 0 评论