跳转至

迁移公告

本文档中心已迁移至 新域名(https://document.nationalchip.com/) ,当前文档中心维护有效期至 2025年6月30日。 请更新您的书签或外部链接,感谢您的支持!

蓝牙遥控器*

本文基于Linux环境下编译蓝牙语音遥控器工程

1. 编译目标APP和板级*

cd apus
make app=ble_remote_control board=gx8301a_rc_demo

编译成功后,在 output 目录下会生成一个 apus.bin。

mkimg...
boot bin size: 0x1000
app bin size:  0x394a8
flash total size: 0x80000

flash zone:
bootloader: 0x0, 0x1000
bootenv   : 0x1000, 0x1000
app bankA : 0x2000, 0x3e000
app bankB : 0x40000, 0x3e000
kvs env   : 0x7e000, 0x2000

buildtime: 1709176672

-rw-rw-r-- 1 sunyb sunyb 242856 2  29 11:17 ./output/apus.bin

2. 烧录固件到开发板*

2.1 烧录前介绍*

开始烧录前需要准备:

  • Micro USB连接线
  • usb to ttl 转接器,用于烧录
  • 8302A_NRE_RC_DMOE 板或 APUS_DEV_QFN32 板
  • 固件包

usb 连接PC

连接示意图

ble_connect

2.2 烧录步骤*

a. 选择对应的串口号和波特率, 选择合适的串口波特率(影响烧录的稳定性和耗时,默认115200)

sudo ./tools/bootx/bootx -m auto -t s -d /dev/ttyUSB0 -c download 0 output/apus.bin -r 1000000

b. 按住boot 键,点击复位按键进入烧录模式,回车开始烧录。

ble_download

c. 烧录成功,出现 SUCCESS 字样

ble_download2

3. 遥控器相关命令*

命令 描述
ble_pair 配对
ble_unpair 取消配对
ble_terminate 断开连接,下次连接不需要配对
ble_peers 已配对设备数量
list_bonded 已绑定的设备列表
delete_bonded 删除绑定信息
read_current_phy 读取当前物理层的传输速率
set_current_phy 设置当前物理层的传输速率 Mbps /2Mbps
set_default_phy 设置当默认物理层的传输=率1 Mbps /2Mbps
read_default_dlen 读取配置蓝牙控制器的建议默认数据长度和传输时间
set_default_dlen 设置默认配置蓝牙控制器的建议默认数据长度和传输时间
set_current_dlen 读取当前蓝牙控制器的建议默认数据长度和传输时间
update_conn 更新设备连接参数,由丛机发起更新请求,主机可以拒接
update_mtu 丛机发起更新MTU 数据
ble_re_establish 重新连接

3.1 功能验证*

  • 广播配对

ble_pair

用Android手机蓝牙搜索蓝牙设备,或者iPhone nRF Connect软件可以搜索到设备

ble_pair2

  • 用蓝牙dongle连接测试

准备一台linux pc机并带蓝牙功能的。如果PC不支持,可以购买绿联的USB蓝牙dongle,链接:https://item.jd.com/100022743908.html

遥控器终端输⼊ble_pair进⾏⼴播配对

linux PC端输入: ./nimble-linux-client -i 0 -d apus_rc_xxx 进行连接。apus_rc_xxx 是遥控器的设备名,根据实际情况修改。nimble-linux-client 工具在SDK对应的 apusppsle_remote_control