csr 蓝牙驱动_【BTS001】开源蓝牙协议栈BTStack初体验

0019d11566c77c57075d6a76e9b67b0a.png

BTStack是一款开源的蓝牙协议栈,它具有很高的可配置性和极小的内存占用量,非常适合小型的、资源有限的设备,例如8或16位嵌入式系统。

支持以下Protocols和Profiles:

Protocols: L2CAP (incl. LE Data Channels), RFCOMM, SDP,BNEP, AVDTP, AVCTP, ATT, SM (incl. LE Secure Connections).

Profiles: GAP, IOP, HFP, HSP, SPP, PAN, A2DP, AVRCPincl. Browsing, GATT.

Beta Stage: HID, HOGP, PBAP.

In Development: BLE Mesh and more.

可以通过(H2) HCI USB、(H4) HCI UART + TI'seHCILL、(H5) HCI Three-Wire UART.等方式与HCI蓝牙模块进行连接。

本文主要初步体验一下BTStack,包括工具的安装以及蓝牙的简单测试。

需要注意的是,BTStack如果用于商业用途,是需要收费的!

需要的工具:

Windows电脑一台;

MSYS2软件安装包;

BTStack源码包;

HCI蓝牙dongle(这里用的是CSR8510A10 dongle)。

1.     MSYS2的安装。

首先,根据自己的电脑下载MSYS2软件包。

b34b26e782315886327b801ca0e6906f.png

双击运行安装,指定安装目录,比如d:\msys64:

83a51429917444ab74f542a93f8c1c72.png

安装完毕后,修改以下文件,增加两个镜像服务器:

dec6e77dcfc679cd2392c4a1b73bffca.png

开始菜单,找到MSYS2 MinGW 64-bit运行:

13f0de4fb7049b2e9749163a6651a221.png

在界面下逐条执行以下命令安装:

pacman -Syu

pacman -Su

pacman -Smingw-w64-x86_64-gcc

pacman -S make

pacman -S vim

pacman -S git

pacman -S python

pacman -S winpty

8b546f64624d680a2de276cd1fe2ee87.png

如有提示缺少文件,可以忽略,如有错误,也可尝试关闭MSYS2后再尝试。

2.     下载、编译BTStack。

下载地址:https://github.com/bluekitchen/btstack

下载后解压到某个文件夹,然后进入该文件夹:

# cd port/windows-winusb

4d089eee5be8751f76a62d7b0c8bc0cd.png

用vim修改btstack_config.h文件(当然也可用windows下的记事本等工具修改),命令:vim btstack_config.h

61cb60393d22c40cf69818b45652d494.png

确保以下一行内容已经存在,没有的话自行添加一下:

#define ENABLE_L2CAP_ENHANCED_RETRANSMISSION_MODE

413f30669364781103538910b4db346a.png

关于#define ENABLE_SCO_OVER_HCI,如果是windows7系统,这将这行注释掉,如果是windows8或者更高,应该可以不注释掉(未验证)。

然后用make命令进行编译:

3286f4f72d3390c4998059e0bfab1e9e.png

3.     安装CSR8510A10 dongle驱动。

我们使用的dongle为CSR8510A10,看BTStack中,也有一些其他品牌的芯片的内容,估计这些芯片也可能是可以使用的:

98d62a9c16ea38ab3823a7828ee8bd56.png

先将CSR8510A10的dongle插入到PC机上,如果没有安装过其他驱动的话,系统应该会安装自带驱动,也就是识别到了一个蓝牙设备。

我的电脑已经装过CSR的软件了,所以CSR8510A10会自动安装CSR的驱动:

0694a68be340af73cb250295d3a300b4.png

需要更新为Windows下的万能USB驱动—WinUSB,需要用到一个驱动安装软件zadig-2.4.exe,下载地址为:https://zadig.akeo.ie/

d0bd616b419d408cc9964ddfc07976a0.png

打开后找到List All Device:

5cde38fb9a791135462351b42878599c.png

将原先的CSR驱动替换为WinUSB驱动

34e07b56729b5d51657614fc537e91e2.png

成功后在设备管理器中看到以下设备:

1aa9af383e1d2616a47f9336b219c105.png

驱动更换OK。

4.     初体验BTStack

启动MSYS2 MinGW 64-bit工具,切换到前面编译软件的目录“port/windows-winusb”。

先来测试一下BLE功能,随便选一个程序,比如gatt_counter.exe:

55564d41a795cd758c800783ed436d9b.png

这个时候,用手机的rightblue就可以找到le_counter这个设备了:

22d7adf2b531ef740a43ed7d7ce8d083.png

顺便也测试一下传统蓝牙,用a2dp_sink_demo.exe来模拟一个蓝牙耳机,与手机连接,并尝试在手机上播放音乐:

bfd9b6ca9e1b9ea3f6df4853027e8098.png

可以看到所有的操作都有提示,并且最后播放的音乐会存在avdtp_sink.wav中,听了一下这个文件,效果还可以(废话么,数字音乐啊~)。

总体下来,感觉这个BTStack挺强大的,对于学习蓝牙协议栈应该有不小的帮助。

1eeae59588be6d7a20654b23e4275035.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值