打印
[MM32软件]

【灵动微电子MM32F5330测评】+07 USB模拟HID设备

[复制链接]
949|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一:实验目的
利用USB模拟HID功能,通过键盘或者按键移动鼠标
USB HID知识介绍:
         USB HID类是USB设备的一个标准设备类,包括的设备非常多。HID类设备定义它属于人机交互操作的设备,用于控制计算机操作的一些方面,如USB鼠标、USB键盘、USB游戏操纵杆等。但HID设备类不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。
USB HID设备的一个好处就是操作系统自带了HID类的驱动程序,而用户无需去开发驱动程序,只要使用API系统调用即可完成通信。
                        
主芯片支持:1 USB 2.0 全速控制器,支持工作在主机(Host) 和设备(Device)模式,
遵循全速 USB 设备(12 Mbps)标准, 内置 16 个双向端点,内置 PHY
由于例程中没有USB的底层驱动,需要我们自行下载:https://mindsdk.mindmotion.com.cn
首次登录时需要注册一下:注册也非常简单
2:选择自己常用的编译环境,选择开发板,点击生产代码
3:下载tinyusb->tud_hid_keyboard中的底层代码
4:打开代码进行修改测试
void hid_task(void);
/*------------- MAIN -------------*/
int main(void)
{
  BOARD_Init();
  tusb_init();
  while (1)
  {
    hid_task();
      tud_task();
  }
}
static void send_hid_report(uint8_t report_id, uint32_t btn)
{
  // skip if hid is not ready yet
  if ( !tud_hid_ready() ) return;
  switch(report_id)
  {
    case REPORT_ID_KEYBOARD:
    {
      // use to avoid send multiple consecutive zero report for keyboard
      static bool has_keyboard_key = false;
      if ( btn )
      {
        uint8_t keycode[6] = { 0 };
        keycode[0] = HID_KEY_A;
        tud_hid_keyboard_report(REPORT_ID_KEYBOARD, 0, keycode);
        has_keyboard_key = true;
      }else
      {
        // send empty key report if previously has key pressed
        if (has_keyboard_key) tud_hid_keyboard_report(REPORT_ID_KEYBOARD, 0, NULL);
        has_keyboard_key = false;
      }
    }
    break;
//    case REPORT_ID_MOUSE:
//    {
//      int8_t const delta = 5;
//      // no button, right + down, no scroll, no pan
//      tud_hid_mouse_report(REPORT_ID_MOUSE, 0x00, delta, delta, 0, 0);
//    }
//    break;
    default: break;
  }
}
实现现象:
打开设备管理可以正常识别到USB模拟HID设备


使用特权

评论回复
沙发
shenxiaolin| | 2024-7-22 17:04 | 只看该作者
感谢分享,辛苦了

使用特权

评论回复
板凳
shenxiaolin| | 2024-7-29 21:08 | 只看该作者
感谢分享

使用特权

评论回复
地板
suncat0504| | 2024-7-30 20:50 | 只看该作者
代码这么少的吗?有工具,真方便,减少移植出现的各种问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

128

帖子

0

粉丝