项目

一般

简介

Bt

  1. 描述
    1)型号:AP6275S模块,支持蓝牙和Wi-Fi同时使用
    2)节点名称:在Linux系统中,蓝牙设备通常被标识为hciX,其中X是一个数字,表示不同的蓝牙控制器。HCI代表“Host Controller Interface”,它是主机与蓝牙硬件之间的接口。
       HCI是蓝牙协议栈的一部分,负责处理主机与蓝牙硬件之间的通信。
    3)工具
       hciattach  hciconfig  hcitool
       编译选项:BR2_PACKAGE_BLUEZ5_UTILS
    
  2. 服务说明
    sdptool browse local | grep Name
    Service Name: Generic Access Profile
    Service Name: Generic Attribute Profile
    Service Name: AVRCP CT
    Service Name: AVRCP TG
    1. Generic Access Profile (GAP):这是蓝牙协议栈中的一个基本配置文件,负责设备的发现和连接。
    2. Generic Attribute Profile (GATT):这是用于 BLE 设备的主要配置文件,允许设备之间通过特征和服务进行数据交换。
    3. AVRCP CT 和 AVRCP TG:这些是音频/视频远程控制配置文件,主要用于控制音频/视频设备的播放。
    
  3. 工具
    # apt install bluez
    hciconfig
    hcitool
    hciattach
    hcidump
    bluetoothctl
    bluetoothd
    obexctl
    obexd
    rfcomm
    sdptool
    gatttool
    btmon
    # 跨平台BLE调试工具:
    nrf-connect
    https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop
    
  4. 查看蓝牙设备
    hcitool dev
    
  5. 查看蓝牙名字
    hciconfig hci0 name
    
  6. 重命名蓝牙
    hciconfig hci0 name "新名称" 
    注:默认的蓝牙名称可尝试在 /etc/bluetooth/main.conf 里设置
    
  7. 初始化蓝牙
    ./bt_pcba_test 
    
  8. 打开蓝牙
    hciconfig hci0 up
    hciconfig -a
    

    hci0:    Type: Primary  Bus: UART
        BD Address: 08:FB:EA:1A:90:07  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING 
        RX bytes:2824 acl:0 sco:0 events:84 errors:0
        TX bytes:4125 acl:0 sco:0 commands:73 errors:0
        Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
        Link policy: RSWITCH SNIFF 
        Link mode: SLAVE ACCEPT 
        Name: 'LPA3588'
        Class: 0x100000
        Service Classes: Object Transfer
        Device Class: Miscellaneous, 
        HCI Version: 5.1 (0xa)  Revision: 0x17
        LMP Version: 5.1 (0xa)  Subversion: 0x1111
        Manufacturer: Broadcom Corporation (15)
    
  9. 扫描蓝牙设备
    hcitool scan
    
  10. 查看蓝牙设备信息
    hcitool info XX:XX:XX:XX:XX:XX
    
  11. 设置蓝牙可被发现
    hciconfig hci0 piscan
    
  12. 设置蓝牙不可被发现
    hciconfig hci0 noscan
    
  13. 重置蓝牙
    hciconfig hci0 reset
    
  14. 关闭蓝牙
    hciconfig hci0 down
    
  15. bluetoothctl(apt install bluez,安装后会有一个bluetoothd守护进程)
    # 进入bluetoothctl命令行
    bluetoothctl
    # 进入bluetoothctl命令行后,类似:[bluetooth]#
    # Controller代表arm板上的蓝牙设备,Device代表蓝牙耳机
    # 按如下步骤初始化蓝牙设备,并连接蓝牙耳机
    # 查看帮组
    help
    
    power on
    agent on
    default-agent
    # 启动扫描
    scan on
    
    # 蓝牙设备标记为受信任,以后连接该设备时,就不需要每次都手动确认连接
    trust 04:8C:9A:F2:54:4B
    
    # 配对
    pair 04:8C:9A:F2:54:4B
    
    # 连接
    connect 04:8C:9A:F2:54:4B
    
    # 查看蓝牙耳机信息
    info 04:8C:9A:F2:54:4B
    
    # 断开连接
    disconnect 04:8C:9A:F2:54:4B
    
    # 不想自动连接上蓝牙耳机,可以删除配对信息
    remove 04:8C:9A:F2:54:4B
    
    # 设置设备可被发现
    discoverable on/off
    
    # 查看已配对设备
    paired-devices
    
    # 退出
    exit/quit
    
    # 可以以命令的形式执行
    bluetoothctl paired-devices
    
  16. 添加SPP服务
    sdptool add SP
    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
    重启服务:
    systemctl daemon-reload
    systemctl restart bluetooth.service
    
  17. GATT服务
    gatttool -b XX:XX:XX:XX:XX:XX -I
    # -b 对端蓝牙地址,-I 表示以交互模式启动
    
  18. 其它
    # 认证打开/关闭,直接体现在进行蓝牙连接时,是否输入连接PIN密码,用于PIN配对:
    hciconfig hci0 auth/noauth
    # 查看/改变蓝牙主从状态:
    hciconfig hci0 lm master(改为主模式)
    hciconfig hci0 lm slave(改为从模式)
    # 查看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
    
  19. 示例
    bluetoothctl
      power on
      agent on
      discoverable on
    
  20. 参考
    https://doc.embedfire.com/linux/rk3588/quick_start/zh/latest/quick_start/wireless/bluetooth/bluetooth.html
    https://blog.csdn.net/chenjk10/article/details/90317028
    https://www.bilibili.com/video/BV1Y24y1A7xH/
    rk3588平台AP6275S蓝牙模块开发调试(重要):
    https://blog.csdn.net/quququuquq/article/details/131805413
    EC-A1684JD4 蓝牙音频/文件收发:
    https://wiki.t-firefly.com/EC-A1684JD4/usage_bt.html#yin-pin-ce-shi