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设备显示相同的问题。