W800 做为电脑蓝牙适配器(Linux 系统)
时间:2小时前 人气:...

之前写过一篇文章 W800 的 SDIO Wi-Fi 网卡驱动和蓝牙驱动研究 ,里面提到了 W800 可以做为 Linux 系统下电脑的蓝牙适配器,但是没有详细说明能咋用,所以这篇文章用一个例子稍微展示一下咋用。

一般的电脑所用的蓝牙都是和无线网卡集成在一起的,无线网卡一般是 SDIO 接口,但蓝牙却用 UART 接口。那么在 Linux 系统下使用蓝牙,就是把蓝牙设备用串口接到电脑上,然后通过这个串口使用标准的 HCI 指令进行交互,所以我们也就可以使用 W800 做为电脑的蓝牙适配器来用。

可以将 W800 的 UART1 和电脑连接,UART0 做为下载口还是继续用来调试,这里在 W800 上的代码就可以这样编写:

#include "wmsdk_config.h"
#include "settings/settings.h"
#include "bluetooth/bluetooth.h"
#include "bluetooth/controller.h"

#define LOG_TAG "APP"
#include "wm_log.h"

static void __bt_ready(int err)
{
    if (err) {
        wm_log_error("Bluetooth init failed (err %d)", err);
        return;
    }

    if (IS_ENABLED(CONFIG_SETTINGS)) {
        settings_load();
    }
}

int main(void)
{
    wm_bt_hci_if_t hci_if;

    wm_log_set_level(WM_LOG_LEVEL_INFO);

    bt_enable(__bt_ready);

    hci_if.uart_index = 1; //uart1
    wm_bt_enable_test_mode(&hci_if);

    return 0;
}

编译后烧写到 W800 开发板上。

之前我写了个文章 w800 连接小米温湿度计获取温湿度 是用编写代码的方式获取温湿度的,后来我看到小米温湿度计 3 的数据格式也可以获取,  

所以接下来我继续用 W800 获取小米温湿度计 3 的温度湿度信息为例来展示如何操作。

在 Linux 系统里:

可以看到用 UART 将 W800 和 电脑连接之后,通过终端发几条命令,一行代码都不用写就能获取到小米温湿度计 3 的数据。

当然在 Linux 系统的桌面环境蓝牙设置里也能通过图形化的方式来使用,会更加方便。

本文基于 WM IoT SDK v2.4-rc 编写的代码,配套的 libcontroller.a 文件为 libcontroller.7z(放置在 components/wm_soc/w80x/lib 目录下)。

上一篇:使用 DeepSeek 搭建一个真正可用的知识库
下一篇:没有下一篇了
最美丽江花花草草大美长白山西北环形古都长安
热门评论