linux蓝牙串口 rfcomm,蓝牙RFCOMM通信

最近需要在某个开发板上面通过蓝牙和手机蓝牙连接,并通过RFCOMM通信。还没有做过蓝牙RFCOMM相关工作,因此先在linux PC上面调试一下流程,并在此记录调试过程。

一、说明

RFCOMM协议基于L2CAP协议的串行(9针RS-232)仿真。

本文中实现了RFCOMM server和client通信。

二、设备

linux主机(Ubuntu-14.04)、linux虚拟机(Ubuntu-14.04)、Android手机一台、不知名蓝牙dongle_1(controller)、CSR 蓝牙dongle_2(controller)。

Linux主机+dongle_1作为server端; linux虚拟机+dongle_2作为client端;Android手机作为client端。

三、环境搭建

Server端:

1. 安装bluez协议栈

2. 查看bluetoothd进程是否启动:ps -ef|grep blue

root      1891     1  0  5月19 ?      00:00:00 /usr/sbin/bluetoothd

如果没有启动,执行:/usr/sbin/bluetoothd -C &

注:经过测试,该过程不是必须的。可能是因为server端程序是socket通信,不需要bluetoothd。

3. 查看bluetooth service是否存在:service --status-all | grep blue

如果不存在,执行:service bluetooth start

注:该步骤经过测试也可以不需要。执行service bluetooth stop,也可以正常通信。可能是因为server端程序是socket通信,不需要bluetooth service。

4. 将dongle_1插入linux主机端;并配置。

1> 执行:hciconfig,观察dongle状态是否为UP RUNNING,如果不为UP RUNNING,则执行:hciconfig hci0 UP

注:hci0是根据hciconfig打印的BD Address来确定的。如果有两个dongle,有可能是hci1。

2> 使蓝牙设备可见(可被其他蓝牙设备扫描到,如手机)

执行命令:hciconfig piscan

然后执行hciconfig,观察状态是否为UP RUNNING PSCAN ISCAN

3> 添加SPP服务

sdptool add SP

也可以执行添加所有服务:

sdptool add --channel=1 DID SP DUN LAN FAX OPUSH FTP HS HF SAP NAP GN PANU HID CIP CTP A2SRC A2SNK SYNCML NOKID PCSUITE SR1

4> 关闭pin码验证

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值