一.初始化步骤
1.启动linux内核的蓝牙功能并添加配置

CONFIG_BT_HCIUART=y
CONFIG_BT_HCIUART_H4=y
CONFIG_BT=y
CONFIG_BT_L2CAP=y
CONFIG_BT_SCO=y
CONFIG_BT_RFCOMM=y
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=y
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=y

2.启用蓝牙
(1)重置蓝牙
(2)如果引脚通过rfkill控制,可以使用如下命令重置

echo 0 > /sys/class/rfkill/rfkill0/state
echo 1 > /sys/class/rfkill/rfkill0/state
(3)下载程序并打开hci接口
# brcm_patchram_plus -d --enable_hci --no2bytes --tosleep 200000 --baudrate 3000000 
--patchram /system/etc/firmware/bcmdhd.hcd /dev/ttyS0 &
cmd: HCI_Reset
cmd: HCI_Download_Minidriver
Sleep 200ms before downloading...
Downloaded
cmd: HCI_Reset
Done setting line discpline
Device setup complete
pid : 1819
(4)激活蓝牙
	#hciconfig hci0 up

3.检查蓝牙设备状态(查看蓝牙设备)
#hciconfig
4.扫描蓝牙设备
#hcitool scan

二,蓝牙MAC地址通信
1.使能蓝牙

# brcm_patchram_plus -d --enable_hci --no2bytes --tosleep 200000 --baudrate 3000000 
--patchram /system/etc/firmware/bcmdhd.hcd --bd_addr 11:22:33:44:55:66 /dev/ttyS0 &
cmd: HCI_Reset
cmd: HCI_Download_Minidriver
Sleep 200ms before downloading...
Downloaded
cmd: HCI_Reset
cmd: HCI_Write_BD_ADDR
Done setting line discpline
Device setup complete
pid : 1948

2.激活蓝牙
#hciconfig hci0 up
3.检查蓝牙设备
#hciconfig
4.查看蓝牙设备的硬件地址
#hcitool dev
5.查看命令
#hcitool --help

6.连接蓝牙
链接的命令查看:rfcomm --help
绑定蓝牙:rfcomm bind /dev/rfcomm0 5C:02:14:38:9D:D9
然后链接:cat >/dev/rfcomm0

7.删除绑定蓝牙
rfcomm release /dev/rfcomm0

三.在 Linux 下使用 rfkill 软开关蓝牙及无线功能
RFKill接口位于 /dev/rfkill,其中包含系统中所有无线电传输的当前状态。每个设备都在 sysfs 中注册当前RFKill状态。另外,在启用了RFKill的设备中每当状态更改时,RFKill会发出 uevents。
rfkill 是一个命令行工具,您可使用它查询和更改系统中启用了RFKill的设备。要获得这个工具,请安装 rfkill 软件包。

1.获得设备列表,索引号从0开始
#rfkill list
2.停用系统中第一个启用RFKill的设备
#rfkill block 0
3.使用 rfkill 阻断某一类设备
#rfkill block wifi
4.停用系统中的所有Wi-Fi设备。要停用所有启用了RFKill的设备
#rfkill block all
5.要重新使用设备,请运行 rfkill unblock。要获得 rfkill 可停用的完整设备类别列表,请运行 rfkill help

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐