打印
[MM32硬件]

【灵动微电子MM32F5330测评】7、实现USB HID枚举

[复制链接]
324|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
        USB是本开发板一个重要的功能,不过通过查询已有的例程中并没有有关USB的例程,我们只能通过其他途径获取,灵动微官网可以生成专用的SDK,其中就包括基于tinyusb的hid_keyboard例程我们参考这个例程进行设计,通过这个例程把我们的开发板枚举成功。
        登录mindsdk网站:

        选择特定目标信息,生成SDK样板:

        选择目标例程:

        这个例程编译后可以看到一只输入a,不过这个定制的工程被急速缩减了,就连常用的“SET”这种宏定义都没有,风格和通用例程差的太多,我们只能试着把这里面的移植一下,结果CFG_TUSB_MCU还总是找不到定义,说是在defined by board.mk,原版里面也没有找到。
        只能进行一下USB的体验了,连接USB后可以看到:

        对于设备的名字可以"usb_descriptors.c"中进行查看修改,还有其他USB参数,比如PID等等:
tusb_desc_device_t const desc_device =
{
    .bLength            = sizeof(tusb_desc_device_t),
    .bDescriptorType    = TUSB_DESC_DEVICE,
    .bcdUSB             = 0x0110,
    .bDeviceClass       = 0x00,
    .bDeviceSubClass    = 0x00,
    .bDeviceProtocol    = 0x00,
    .bMaxPacketSize0    = CFG_TUD_ENDPOINT0_SIZE,

    .idVendor           = 0xCafe,
    .idProduct          = USB_PID,
    .bcdDevice          = 0x0100,

    .iManufacturer      = 0x01,
    .iProduct           = 0x02,
    .iSerialNumber      = 0x03,

    .bNumConfigurations = 0x01
};
char const* string_desc_arr [] =
{
  (const char[]) { 0x09, 0x04 }, // 0: is supported language is English (0x0409)
  "TinyUSB",                     // 1: Manufacturer
  "TinyUSB Device",              // 2: Product
  "123456",                      // 3: Serials, should use chip ID
};
       我还是想重点吐槽一下,这次提供的例程和SDK是两个工作组写的吗?对于同一款单片机最基本的规范都不统一吗?我很费解,想要移植需要修改大量的宏定义,要搞统一是不是先把自己的对外代码先统一。

使用特权

评论回复
沙发
tpgf| | 2024-7-19 11:39 | 只看该作者
每次枚举代表什么需要建立头文件吗

使用特权

评论回复
板凳
xiaoqizi| | 2024-7-19 12:56 | 只看该作者
一般情况下枚举型的数据占用的空间取决于什么呢

使用特权

评论回复
地板
wowu| | 2024-7-19 17:15 | 只看该作者
如果枚举的数量比较多的话 有没有好的替代方式呢

使用特权

评论回复
5
wakayi| | 2024-7-19 18:21 | 只看该作者
这些枚举的变量都代表什么状态呢

使用特权

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

使用特权

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

使用特权

评论回复
8
suncat0504| | 2024-7-30 20:42 | 只看该作者
适用型号多吗?有这样的工具,真是方便多了。

使用特权

评论回复
9
[鑫森淼焱垚]| | 2024-8-1 14:01 | 只看该作者
大佬,牛啊

使用特权

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

本版积分规则

认证:硬件工程师
简介:有着多年硬件开发经验的专业人员,专注于医疗电子领域,热衷于对新鲜事物的探索,喜欢DIY!

157

主题

1164

帖子

4

粉丝