当前位置: 首页 > news >正文

ESP32鼠标驱动(ble hid device_demo)【ESP32指向鼠标】

ESP32鼠标驱动(ble hid device_demo)【ESP32指向鼠标】

我使用的vscode开发esp32,用的是ESP-IDF v5.12固件,其提供了很多例程,在搜索里面输入“ESP-IDF: Show Examples Projects”,便可看到例程,如下图所示,我选择的是ble hid device_demo,其中包含鼠标的例程,我可以直接使用在这里插入图片描述

例程的效果

在main/ble_hidd_demo_main.c中,我们可看到例程的主要函数,如下

void hid_demo_task(void *pvParameters)
{
    vTaskDelay(1000 / portTICK_PERIOD_MS);
    while(1) {
        vTaskDelay(2000 / portTICK_PERIOD_MS);
        if (sec_conn) {
            ESP_LOGI(HID_DEMO_TAG, "Send the volume");
            send_volum_up = true;
            //uint8_t key_vaule = {HID_KEY_A};
            //esp_hidd_send_keyboard_value(hid_conn_id, 0, &key_vaule, 1);
            esp_hidd_send_consumer_value(hid_conn_id, HID_CONSUMER_VOLUME_UP, true);
            vTaskDelay(3000 / portTICK_PERIOD_MS);
            if (send_volum_up) {
                send_volum_up = false;
                esp_hidd_send_consumer_value(hid_conn_id, HID_CONSUMER_VOLUME_UP, false);
                esp_hidd_send_consumer_value(hid_conn_id, HID_CONSUMER_VOLUME_DOWN, true);
                vTaskDelay(3000 / portTICK_PERIOD_MS);
                esp_hidd_send_consumer_value(hid_conn_id, HID_CONSUMER_VOLUME_DOWN, false);
            }
        }
    }
}

主要就是控制电脑的音量,在编译并烧录程序后,连接esp32的蓝牙,变可看到音量的增长与降低。
在这里插入图片描述

控制鼠标的函数

在main/esp_hidd_prf_api.c中,具体如下,

void esp_hidd_send_mouse_value(uint16_t conn_id, uint8_t mouse_button, int8_t mickeys_x, int8_t mickeys_y)
{
    uint8_t buffer[HID_MOUSE_IN_RPT_LEN];

    buffer[0] = mouse_button;   // Buttons
    buffer[1] = mickeys_x;           // X
    buffer[2] = mickeys_y;           // Y
    buffer[3] = 0;           // Wheel
    buffer[4] = 0;           // AC Pan

    hid_dev_send_report(hidd_le_env.gatt_if, conn_id,
                        HID_RPT_ID_MOUSE_IN, HID_REPORT_TYPE_INPUT, HID_MOUSE_IN_RPT_LEN, buffer);
    return;
}

buffer[0] = mouse_button;: 将鼠标按钮状态,左右键

buffer[1] = mickeys_x;: 将鼠标在X轴上的移动速度

buffer[2] = mickeys_y;: 将鼠标在Y轴上的移动速度

buffer[3] = 0;: 将鼠标滚轮的移动量

buffer[4] = 0;: 将AC Pan(通常用于水平滚动)的值

鼠标功能的实验

在void hid_demo_task(void *pvParameters){}函数中,把音量函数,改为鼠标控制函数便可

相关文章:

  • 外贸订货系统的核心功能模块解析
  • 基于fastadmin快速搭建导航站和API接口站点系统源码
  • 深入剖析GC问题:如何有效判断与排查
  • DeepSeek专题:DeepSeek-V1核心知识点速览
  • 国内情智机器人:从“通情达理”到温暖陪伴的跨越
  • UDP通信开发
  • 前端面试技巧与实践
  • 基于AWS云平台的法律AI应用系统开发方案
  • 嵌入式软件、系统、RTOS(高软23)
  • 深入理解Python多进程编程 multiprocessing
  • 「软件设计模式」外观模式(Facade)
  • 洛谷 B4025:最大公约数 ← 辗转相除法+更相减损法
  • YOLO11环境搭建CUDA12.6
  • Python入门全攻略(六)
  • AMBA-CHI协议详解(十四)
  • istio入门篇(一)
  • 文心智能体平台将全面接入DeepSeek
  • QT基础一、学会建一个项目
  • 零基础购买阿里云服务器,XShell连接云服务器
  • 五、敏捷方法论:敏捷团队与文化
  • 特朗普访问卡塔尔,两国签署多项合作协议
  • 江西贵溪:铜板上雕出的国潮美学
  • 将人工智能送上太空,我国太空计算卫星星座成功发射
  • 125%→10%、24%税率暂停90天,对美关税开始调整
  • 足球少年郎7月试锋芒,明日之星冠军杯构建顶级青少年赛事
  • 京东美团饿了么等外卖平台被约谈