Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Raspberry pi bluetoothctl不显示蓝牙低能量(BLE)设备_Raspberry Pi_Bluetooth Lowenergy_Bluez_Pairing - Fatal编程技术网

Raspberry pi bluetoothctl不显示蓝牙低能量(BLE)设备

Raspberry pi bluetoothctl不显示蓝牙低能量(BLE)设备,raspberry-pi,bluetooth-lowenergy,bluez,pairing,Raspberry Pi,Bluetooth Lowenergy,Bluez,Pairing,我想将我的蓝牙低能运动手表(Suunto Ambit 3)与我的Raspberry PI 3 B V1.2配对 我正在使用内核版本5.4.79-v7的RaspianOS版本10 buster+ 此操作系统包含版本5.50中的bluez堆栈,该堆栈是通过apt get从预定义包安装的 通常,ble配对是在android和IOS下与智能手机进行的。在配对过程中,手表会提供一个必须由智能手机输入的pincode。 使用android下的nRFConnect应用程序,配对工作正常。 当我在我的树莓上运行

我想将我的蓝牙低能运动手表(Suunto Ambit 3)与我的Raspberry PI 3 B V1.2配对 我正在使用内核版本5.4.79-v7的RaspianOS版本10 buster+ 此操作系统包含版本5.50中的bluez堆栈,该堆栈是通过apt get从预定义包安装的

通常,ble配对是在android和IOS下与智能手机进行的。在配对过程中,手表会提供一个必须由智能手机输入的pincode。 使用android下的nRFConnect应用程序,配对工作正常。 当我在我的树莓上运行hcitool时,手表处于配对模式,它就会出现

sudo hcitool-i hci0 lescan

但是,当我尝试运行
sudo bluetoothctl
命令并启用
scan
时,我的设备不会出现,并且与正确的mac地址配对也不起作用。 其他设备仍然出现在bluetoothctl中 我也研究过,但这似乎只与较新的raspberry pi模型有关


你知道是什么阻碍了我的设备在bluetoothctl扫描模式下被找到吗?或者我能做些什么使我的设备与启用的pin码配对?

我自己找到了一个解决方案

在bluetoothctl内部调用以下序列

menu scan
transport le
back
scan on
终于让bluetoothctl找到了我的手表。
connect命令也在工作。

这听起来像是bluetoothctl或Suunto watch的bug。当您无法通过bluetoothctl找到设备时,是否可以使用nRF Connect同时查看?换句话说,你是否完全确定手表没有停止广告,或者它没有自动连接到其他东西。我这样问是因为如果这两件事中的一件发生了,那么预计通过bluetoothctl将无法再看到手表。这是一个很长的过程,但您也可以尝试重置btmgmt,如以下答案所示:-。也许这会让事情运转起来。同样值得检查的是,如果你使用了
blutothctl设备
,手表不在列表中,因为在扫描过程中,如果已经发现了现有设备,它们通常会被过滤掉。
sudo服务蓝牙重启通常是重置
bluetooth
的好主意。要获得调试的更多可见性,请使用
journalctl-f-u bluetooth
sudo btmon
嗨,谢谢你的回复。嗨,谢谢你的回复。我做了一些进一步的调查:看起来我的手表确实发送了一个非连接广告框。可能是为了防止其他应用程序连接到该手表,我对帧格式不是很熟悉,但
hcidump--raw
给了我
04 3E 21 02 01 00 00 C0 81…
我试图用nRF connect模拟相同的情况,bluetoothctl的行为也一样。因此,如果已停用可连接,则未找到。可能我必须访问比bluetoothctl更深的级别。您知道是否有一些工具/库可用于此?