在Linux下使用蓝牙的资料很多,但大部分都是以前的蓝牙2.0,自己这个蓝牙也是搞了很长时间,中间听过一段时间,现在回过头来才搞定,接下来我将从以下几个方面介绍如何在linux下使用蓝牙BLE设备(arm-linux)
AM335X RTL8821AU(此为一个WiFi蓝牙二合一设备) linux内核4.1 bluez5.25(这个后面讲)
下载驱动:http://download.csdn.net/detail/lixiaojie123123/9888777
根据驱动中的readme可以直接在ubuntu上运行,我是在AM335X上面运行,此时需要移植,移植过程参考如下博文:http://blog.csdn.net/qqchangjianfei/article/details/51719108 蓝牙移植部分
如果移植成功,则插上蓝牙设备后,系统能够识别,下面介绍常用的蓝牙命令:
hciconfig:与ifconfig类似,用来配置蓝牙状态,可以用hciconfig --help来查看它支持多少命令
我们基本用到的:hciconfig hci0 up(down)等基本操作
hcitool: 这个的命令很多,主要有hcitool lescan等
gatttool: 这个命令是核心(BLE),一般用法 gatttool -b 设备地址 -I进入交互模式
你的驱动移植成功后,使用以上命令打来蓝牙设备,搜索,然后用gatttool去进入交互模式(针对BLE),看能不能进去,如果可以,恭喜你,你不用重新编译BLUEZ,如果不行那就尴尬了(看下一部分)
gatttool相关的操作网上都有,我这里提一点: 我再gatttool的过程中,想写数据时,按照网上普遍:
如果你的设备可以直接使用,就忽略此部分,如果你在gatttool时总是返回(111)connect: Connection refused (111),则这一部分你就好好看看
首先
很感谢这篇博客,帮助我成功的交叉编译了BLUEZ5.25,大家编译过程可以参考:
http://blog.csdn.net/wang_shuai_ww/article/details/41774477
我在这里提醒几点:
(1)在编译的时候提示找不到我们编译过的文件,则我们再./configure时进行指定路径:CFLAGS=-I/xx/xx/include LIBS=-L/xx/xx/lib即可
(2)安装ncurses时,如果你是ubuntu16.04有可能会报错,此时需要先
我再这里用一个部分来讲这个命令,就能表明这个命令的重要性了
编译完成之后,讲我们安装目录的lib文件夹下的文件拷贝到系统的/usr/lib文件夹下
将tools文件夹下的btmgmt拷贝到/usr/bin文件夹下,然后你看自己的需要,将一些新的命令拷贝进/usr/bin替换掉现在的命令
btmgmt
首先你按照下面的操作执行:
因为LINUX上大家很少用蓝牙来完成一些事情,关于这方面的(特别是BLE)的操作很少,我也是在网上去找资料完成的,具体的我也不懂,还需好好研究啊
此时 我们的蓝牙是作为主机去连接从机,那能不能让蓝牙作为从机,从而与我们的手机进行通信呢?该怎样操作?
linux下一个蓝牙主机能否同时连接多个从机?我试了在ubuntu下能够开两个窗口,连接两个,这个如何实现?