我在使用 rfcomm 命令时遇到问题 - 调用后rfcomm listen 0 1
我得到了(正确的)Waiting for connection on channel 1
。然后,我通过 Android 的应用程序串行蓝牙终端连接到设备并(正确地)接收和发送消息。
Connection from FF:FF:FF:FF:FF:FF to /dev/rfcomm0
当我断开手机与设备的连接时,问题就出现了。即使几分钟后,rfcomm 命令也不会终止。我在另一个终端上对其进行了测试,结果如下:
命令:
rfcomm
结果:
rfcomm0: 00:00:00:00:00:00 -> FF:FF:FF:FF:FF:FF channel 1 closed [reuse-dlc release-on-hup tty-attached]
命令:
fuser rfcomm0
结果:
/dev/rfcomm0: 675
命令:
dev# ps -aef | grep '675'
结果:
root 675 649 0 07:36 pts/1 00:00:00 rfcomm listen 0 1 root 694 628 0 07:50 pts/0 00:00:00 grep 675
我的操作系统版本是 Yocto 2.5
在此先感谢您的帮助。
答案1
我在 Raspberry 上遇到了同样的问题。我认为这是 rfcomm 实用程序中的错误。无意中,我找到了一种解决方法:
sudo rfcomm watch hci0 -L 86400
上面的命令中的参数有点错误(-L 86400 必须先执行)。它在 rfcomm 内部产生了一个小错误,但这是骗局!如果我现在关闭 Android 端的连接,rfcomm 服务器也会终止。这真是个奇迹:)