Linux蓝牙串口只能打开一次

Linux蓝牙串口只能打开一次,linux,serial-port,bluetooth,Linux,Serial Port,Bluetooth,我有一个蓝牙串行端口,正在尝试连接到它。我有: sudo rfcomm bind 13 00:0A:3A:26:4A:86 这似乎成功了。然后我尝试访问它: >>> f=file('/dev/rfcomm13','rw') >>> f.close() >>> f=file('/dev/rfcomm13','rw') Traceback (most recent call last): File "<stdin>", line

我有一个蓝牙串行端口,正在尝试连接到它。我有:

sudo rfcomm bind 13 00:0A:3A:26:4A:86
这似乎成功了。然后我尝试访问它:

>>> f=file('/dev/rfcomm13','rw')
>>> f.close()
>>> f=file('/dev/rfcomm13','rw')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 16] Device or resource busy: '/dev/rfcomm13'
>>f=file('/dev/rfcomm13',rw')
>>>f.关闭()
>>>f=文件('/dev/rfcomm13',rw')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
IOError:[Errno 16]设备或资源正忙:'/dev/rfcomm13'
这似乎是一致的——它可以打开一次,但此后它一直处于“忙碌”状态,直到我解除绑定并重新绑定它。在python中这样做可以最清楚地显示错误,但它似乎无处不在

close系统调用似乎没有清理一些关键资源。快速浏览一下驱动程序源代码,它可能是dlci频道或类似的频道,但我对它们是什么很模糊

有没有办法在每次绑定时多次打开连接


谢谢

您不能再次运行
rfcomm
命令吗?如果我理解正确,当您运行它时,它会创建
/dev/rfcomm13
,当您关闭它时,
/dev
文件将被删除,您将不得不再次运行
rfcomm
。@terdon如果可以的话,我会这样做。我需要使用具有多个打开和关闭的库。但是,我不希望关闭一个dev文件就可以删除它——这不是正常的/dev行为。这只是一个偶然的机会,我对您所尝试的完全没有经验。我突然想到,也许问题出在
f.close()
上,但情况似乎仍然如此@terdon它似乎与Python没有任何关系,因此可能不是
f.close()
的错。使用屏幕多次打开同一rfcomm设备显示相同的问题。