主要命令
rfcomm 是一个用于在 Linux 中配置和管理串口通信的工具。它可用于在蓝牙设备之间建立串口连接,使两个设备能够通过蓝牙进行数据传输。
sdptool 是一个在 Linux 中用于管理和查询蓝牙服务记录的工具。它可以通过 Service Discovery Protocol (SDP) 查询本地或远程设备上可用的蓝牙服务。
命令须知
手机蓝牙硬件地址bc:1A:e4:46:b8:36
开发板蓝牙硬件地址不固定D9:70:65:69:6D:CF
查看手机蓝牙串口通道
sudo sdptool browse local
sudo sdptool browse bc:1A:e4:46:b8:36
增加spp支持
sudo sdptool add SP
sudo mknod /dev/rfcomm2 c 216 0 ---216是RFCOMM设备号
sudo chmod 666 /dev/rfcomm2
sudo rfcomm bind /dev/rfcomm2 bc:1A:e4:46:b8:36 7
sudo rfcomm connect /dev/rfcomm2 bc:1A:e4:46:b8:36 7
sudo rfcomm show /dev/rfcomm2
sudo rfcomm release /dev/rfcomm2
支持过程
物理地址
首先需要知道两者物理地址,配对过程中可以查到两者物理地址
开发板物理地址FF:83:3B:C9:85:44(经测试该地址每次重启都有变动,但没影响)
手机物理地址BC:1A:E4:46:B8:36
内核添加RFCOMM_TTY支持
修改/OK3399-desktop-release/kernel/arch/arm64/configs/rockchip_linux_defconfig
将# CONFIG_BT_RFCOMM_TTY is not set修改为
CONFIG_BT_RFCOMM_TTY=y
重新编译烧写内核。
手机支持spp服务
手机要安装蓝牙串口助手来支持spp服务
使用sudo sdptool browse BC:1A:E4:46:B8:36来查看手机是否支持spp服务,如下字样表示已支持。
开发板要添加spp服务
使用sudo sdptool browse local来查看开发板是否支持spp服务
开发板添加spp服务支持修改步骤:
sudo vi /lib/systemd/system/bluetooth.service
重启服务
sudo systemctl daemon-reload
sudo systemctl restart bluetooth.service
使用sudo sdptool browse local来查看开发板是否支持spp服务。如下字样表示已支持
如下提示,是因为驱动不支持,前面已经在内核中添加了这部分支持。
按照手册配对手机蓝牙和开发板蓝牙。确认设备已经正确配对之后,使用
sudo rfcomm connect <RFCOMM 设备名> <设备地址> <端口号> 命令连接到设备。
连接手机命令如下:
sudo rfcomm connect /dev/rfcomm24 bc:1A:e4:46:b8:36 7
ctrl+c终止,让其后台运行
sudo rfcomm connect /dev/rfcomm24 bc:1A:e4:46:b8:36 7 &
开发板和手机蓝牙收发测试