这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 手势翻页笔之USB驱动加整合

共4条 1/1 1 跳转至

手势翻页笔之USB驱动加整合

高工
2024-07-15 22:13:37     打赏

看视频,老师用了threadx和USB库,其实并没有怎么看懂,但是主打一个听话,跟着操作使用stm32cubemx配置

配置USB

添加threadx

添加USBX库

点点点,跟着老师和论坛的朋友们的脚步,直接生成,简单修改,齐活

主要的相关程序如下

/* USER CODE BEGIN 1 */
/**
 * @brief  实现usbx hidkeyboard线程入口的函数
 * @param  线程输入:用户线程输入参数
 * @retval none
 */
static VOID usbx_hidkeyboard_thread_entry(ULONG thread_input)
{
  /* USER CODE BEGIN usb_app_thread_entry */
  UX_SLAVE_DEVICE *device;
  UX_SLAVE_CLASS_HID_EVENT hid_event;
  TX_PARAMETER_NOT_USED(thread_input);
  device = &_ux_system_slave->ux_system_slave_device;
  ux_utility_memory_set(&hid_event, 0, sizeof(UX_SLAVE_CLASS_HID_EVENT));
  while (1)
  {
    /* Check if the device state already configured */
    if ((device->ux_slave_device_state == UX_DEVICE_CONFIGURED) && (hid_keyboard != UX_NULL))
    {
      /* sleep for 10ms */
      tx_thread_sleep(MS_TO_TICK(100));
      hid_event.ux_device_class_hid_event_length = 8;
      hid_event.ux_device_class_hid_event_buffer[0] = 0;
      hid_event.ux_device_class_hid_event_buffer[1] = 0;
      uint16_t gesture_Data = getGesture();
      usart_print_gesture(gesture_Data); // 串口打印
      if (gesture_Data != 0)
      {
        switch (gesture_Data)
        {
        case PAJ_UP:
          hid_event.ux_device_class_hid_event_buffer[2] = 0x4B;
          break; // Keyboard PageUp
        case PAJ_DOWN:
          hid_event.ux_device_class_hid_event_buffer[2] = 0x4E;
          break; // Keyboard PageDown
        case PAJ_LEFT:
          hid_event.ux_device_class_hid_event_buffer[2] = 0x50;
          break; // Keyboard LeftArrow
        case PAJ_RIGHT:
          hid_event.ux_device_class_hid_event_buffer[2] = 0x4F;
          break; // Keyboard RightArrow
        case PAJ_FORWARD:
          hid_event.ux_device_class_hid_event_buffer[2] = 0x4A;
          break; // Keyboard Home
        case PAJ_BACKWARD:
          hid_event.ux_device_class_hid_event_buffer[2] = 0x4D;
          break; // Keyboard End
        case PAJ_CLOCKWISE:
          hid_event.ux_device_class_hid_event_buffer[2] = 0x3E;
          break; // Keyboard F5
        case PAJ_COUNT_CLOCKWISE:
          hid_event.ux_device_class_hid_event_buffer[2] = 0x29;
          break; // Keyboard Esc
        case PAJ_WAVE:
          break;
        default:
          break;
        }
        ux_device_class_hid_event_set(hid_keyboard, &hid_event);
      }
      else
      {
        hid_event.ux_device_class_hid_event_buffer[2] = 0;
        ux_device_class_hid_event_set(hid_keyboard, &hid_event);
      }
    }
    else
    {
      /* sleep for 10ms */
      tx_thread_sleep(MS_TO_TICK(10));
    }
    HAL_Delay(100);
    // HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
  }
  /* USER CODE END usb_app_thread_entry */
}



高工
2024-07-15 23:50:40     打赏
2楼

专家
2024-07-16 02:52:02     打赏
3楼

谢谢分享


专家
2024-07-16 11:23:00     打赏
4楼

谢谢分享!


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]