基于rk3588平台AP6275S蓝牙模块开发记录

目录

linux蓝牙测试工具

Bluetoothctl

hciconfig

hcitool

开启spp服务

1. 模块配置

2. 添加SPP服务

3. 查看SPP服务

linux蓝牙手机调试

问题分析:

windowsPC蓝牙测试

1. 在windows蓝牙设置中选择更多蓝牙选项

2. 添加虚拟传入传出口

3. 使用串口助手进行收发测试

编译瑞芯微rk3588的sdk中的rkwifibt-app

问题分析

Ubuntu交叉编译rkwifibt时缺库

参考文档:


linux蓝牙测试工具

Bluetoothctl

如下图所示,bluetoothctl可进行蓝牙扫描、信任、配对等功能

hciconfig

在命令行输入hciconfig后可显示设备信息

常用命令:

打开/关闭/重置hci设备:hciconfig hci0 up/down/reset
认证打开/关闭:hciconfig hci0 auth/noauth,直接体现在进行蓝牙连接时,是否输入连接PIN密码,用于PIN配对
查看/改变蓝牙主从状态:hciconfig hci0 lm master(改为主模式)、hciconfig hci0 lm slave(改为从模式)
查看/设置蓝牙名称:hciconfig hci0 name 、hciconfig hci0 name LPA3588

hcitool

查看HCI设备信息:hcitool dev
发现周围蓝牙设备:hcitool -i hci0 inq
蓝牙扫描:hcitool -i hci0 inq
查看探查到的蓝牙信息:hcitool -i hci0 name 88:A9:B7:E6:F1:8F
发送CMD蓝牙命令:hcitool cmd --help

开启spp服务

1. 模块配置

关闭蓝牙
sudo hciconfig hci0 down

重置蓝牙
sudo hciconfig hci0 reset

打开蓝牙
sudo hciconfig hci0 up

让蓝牙可连接可发现
sudo hciconfig hci0 piscan 

2. 添加SPP服务

配置好以后,需要手动添加SPP服务

sudo sdptool add SP

添加成功会有如下返回结果:

Serial Port service registered    

3. 查看SPP服务

sudo sdptool browse local 

问题:

运行后报错:Failed to connect to SDP server on FF:FF:FF:00:00:00: No such file or directory

解决:修改系统中蓝牙服务的启动选项,-C的意思就是compat,兼容性模式运行蓝牙服务

sudo vim /lib/systemd/system/bluetooth.service

ExecStart=/usr/lib/bluez5/bluetooth/bluetoothd -C

重启蓝牙服务:

sudo systemctl daemon-reload
sudo systemctl restart bluetooth.service

再次查看

sudo sdptool browse local 

找到上述服务,串口服务SPP开启成功

linux蓝牙手机调试

hcitool scan 扫描蓝牙设备 

sdptool add SP 为本地设备增加SPP服务(在上一小节中着重介绍)

打开手机上的蓝牙串口工具(为了增加spp服务)

sdptool browse 蓝牙mac地址  查看手机蓝牙spp服务在哪个信道(例如我的蓝牙手机spp服务在信道4)

mknod /dev/rfcomm0 c 216 0 创建设备节点

chmod 666 /dev/rfcomm0 设置权限

rfcomm bind 0 蓝牙设备mac地址 4 (信道4 之前搜索到spp服务的信道别忘了)

rfcomm connect 0 蓝牙设备mac地址 4(连接蓝牙设备)

如果此时出现Can't create RFCOMM TTY: Address already in use 

rfcomm release 0 (释放已使用的蓝牙rfcomm tty)

再次连接即可 #rfcomm connect 0 蓝牙设备mac地址 4(连接蓝牙设备)

问题分析:

执行rfcomm时报错:RFCOMM TTY support not available

问题原因:内核中rfcomm tty选项没有打开

解决方法:

在sdk的内核目录找到该选项并使能

CONFIG_BT_RFCOMM=y

修改后重新编译内核并烧录进板子即可

Failed to connect to SDP server on FF:FF:FF:00:00:00: No s​​​​​​uch file or directory

找到这个文件:

/etc/systemd/system/dbus-org.bluez.service

修改如下代码:

#ExecStart=/usr/lib/bluetooth/bluetoothd
ExecStart=/usr/lib/bluetooth/bluetoothd --compat
sudo systemctl daemon-reload
sudo systemctl restart bluetooth

windowsPC蓝牙测试

1. 在windows蓝牙设置中选择更多蓝牙选项

2. 添加虚拟传入传出口

3. 使用串口助手进行收发测试

编译瑞芯微rk3588的sdk中的rkwifibt-app

问题分析

Ubuntu交叉编译rkwifibt时缺库

No package 'glib-2.0' found

解决方法:sudo apt-get install libglib2.0-dev

No package 'dbus-1' found
解决方法:sudo apt-get install libdbus-1-dev

参考文档:

Ubuntu上实现蓝牙串口通讯(SPP)_ubuntu 蓝牙串口_Chuck_lin的博客-CSDN博客

linux蓝牙建立spp服务连接_蓝牙spp_白小溪via的博客-CSDN博客

史上最全的蓝牙调试工具【集合汇总】 - 知乎

Ubuntu蓝牙Bluetooth命令行连接发送文件完整流程_ubuntu 蓝牙发送指令_新潮技术研究社的博客-CSDN博客

### RK3588 芯片蓝牙网络连接配置 RK3588 是一款高性能处理器,支持多种无线通信协议,其中包括蓝牙功能。为了实现基于 RK3588 的设备通过蓝牙进行网络连接,通常需要完成以下几个方面的设置和调试。 #### 1. 开发环境准备 在开始之前,需确保开发环境中已安装 Android 10 或更高版本的操作系统,并且已经适配了 RK3588 平台的相关驱动程序[^1]。对于蓝牙功能的支持,主要依赖于 Bluedroid 堆栈的初始化与配置。Bluedroid 是 Android 中使用的默认蓝牙堆栈,其复杂度较高,涉及多个层次的技术细节,包括 AIDL、Framework、Binder 机制以及 JNI 接口等。 #### 2. 配置 Bluetooth 功能 针对 RK3588 的蓝牙功能启用,可以参考以下步骤: - **加载蓝牙驱动** 如果目标硬件(如 AX210)存在特定的蓝牙模块,则需要确认对应的驱动是否正确加载。例如,在某些情况下,AX210 的蓝牙功能可能无法被 `lsusb` 正常识别,这可能是由于内核中的蓝牙驱动未完全匹配所致[^2]。此时可尝试更新或替换蓝牙驱动文件至最新版本,具体路径如下: ```bash /lib/firmware/iwlwifi-ty-a0-gf-a0-59.ucode ``` - **修改内核源码** 若发现现有驱动不兼容,可以通过调整 Linux 内核源码来解决此问题。例如,访问 Armbian 提供的 Rockchip 内核仓库并编辑相关文件: ```bash git clone https://github.com/armbian/linux-rockchip.git -b rk-5.10-rkr4 cd linux-rockchip/drivers/bluetooth/ nano btintel.h nano btusb.c ``` 修改完成后重新编译内核并将新生成的固件部署到目标设备中。 #### 3. 实现蓝牙网络共享 (Bluetooth Tethering) 要让 RK3588 设备能够利用蓝牙建立网络连接,还需要进一步配置蓝牙网络共享功能。以下是关键操作流程: - **启动蓝牙服务** 确保蓝牙服务已在后台运行: ```bash systemctl start bluetooth.service ``` - **创建 PAN 连接** 使用 BlueZ 工具集管理蓝牙设备间的交互过程。例如,执行以下命令以允许其他设备接入当前主机作为网关: ```bash hciconfig hci0 up sdptool add SP pand --listen --role NAP & ``` - **分配 IP 地址** 对应的虚拟接口会自动创建为 bnepX 形式;随后为其指定静态地址范围或者开启 DHCP 守护进程分发动态地址池资源给客户端节点使用。 ```bash ifconfig bnep0 192.168.42.1 netmask 255.255.255.0 up echo "interface=bnep*" >> /etc/dnsmasq.conf dnsmasq -C /etc/dnsmasq.conf iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 ``` #### 4. 测试 NFC 数据传输能力 部分 RK3588 板卡额外集成有 NFC 协议支持单元,比如 YouYeeToo R1 就预装了一颗专用芯片用于简化近距离通讯场景下的数据交换任务[^3]。虽然该特性本身并不直接影响蓝牙联网行为表现,但它确实提供了另一种便捷方式让用户快速分享 Wi-Fi 密钥或者其他重要参数信息从而间接促进整体用户体验提升效果显著。 --- ### 注意事项 上述方法适用于大多数标准情况下的蓝牙网络配置需求,但在实际项目实施过程中可能会遇到各种特殊情况,因此建议开发者仔细阅读官方文档资料的同时保持密切关注社区论坛上的讨论帖以便及时获取最新的解决方案和技术指导方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

myqpy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值