gpt4 book ai didi

Linux 识别我的 BLE?

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:11 24 4
gpt4 key购买 nike

我有一个 BLE SoC (QN9021) 通过 UART 接口(interface)连接到 linux 系统(运行 openwrt 的 beagle bone)。我希望 linux 能够识别与系统连接的 BLE,并且 gatttool、hcitool 等命令应该适用于我的 BLE。

此外,我正在使用 Bluez,我希望 BlueZ 库能够找到并直接与我的 BLE 通信。

看起来 bluez 中的源文件使用 socket() 函数调用来与蓝牙适配器通信。我已经发布了包含套接字调用的 hcitool.c 源文件部分:

/* Open HCI device.
* Returns device descriptor (dd). */
int hci_open_dev(int dev_id)
{
struct sockaddr_hci a;
int dd, err;

/* Check for valid device id */
if (dev_id < 0) {
errno = ENODEV;
return -1;
}

/* Create HCI socket */
dd = socket(AF_BLUETOOTH, SOCK_RAW | SOCK_CLOEXEC, BTPROTO_HCI);
if (dd < 0)
return dd;

/* Bind socket to the HCI device */
memset(&a, 0, sizeof(a));
a.hci_family = AF_BLUETOOTH;
a.hci_dev = dev_id;
if (bind(dd, (struct sockaddr *) &a, sizeof(a)) < 0)
goto failed;

return dd;

failed:
err = errno;
close(dd);
errno = err;

return -1;
}

如前所述,我通过 UART 连接 BLE SoC。我怎样才能让我的 BLE 被识别为蓝牙和像 socket() 这样的函数调用应该打开我的 BLE 的描述符?

最佳答案

你运行的时候有什么表现吗?

dmesg | grep blue

lsmod | grep blue

您需要确保您有此模块的 linux 驱动程序,它在您的内核中可用(NXP 和 TI 不一定喜欢一起玩)并且它可能内置在您的设备树中。

如果使用具有驱动程序支持的 TI BLE 模块,您可能会更幸运。

关于Linux 识别我的 BLE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41479580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com