新版CubeMX5.1.0生成自定义人体输入型设备(HID)驱动代码报错

2019-07-21 04:35发布

本帖最后由 wmfi 于 2019-3-8 11:05 编辑

新版CubeMX5.1.0生成自定义人体输入型设备(HID)驱动代码报错


使用新版的CubeMX5.1.0选择USB_DEVICE选择 Class For FS IP ——> Custom Human Interface Device Class(HID)如下图
cubemx异常.jpg

标识1、选择的就是Custom Human Interface Device Class(HID)
标识2、只要选择标识1的类型,标识2的选项就是一个感叹号,并且后面的下拉框没有任何选项

选择这个USB模式后,生成的代码,在usbd_conf.c 文件中,以下函数中会有报错的

void *USBD_static_malloc(uint32_t size)
{
  return mem;
}
批注 2019-03-08 102625.jpg
新版cubemx生成的就会使这个函数报错,我下载5.1.0之前的版本 比如cubemx5.0.1版,生成的代码,在这个函数不会报错,如下图
生成后的.jpg
通过对比发现,CubeMX5.1.0版本选择Custom Human Interface Device Class(HID)生成的代码会使void *USBD_static_malloc(uint32_t size)少一行代码,而CubeMX5.1.0之前的版本都不会产生这个问题,如果我用CubeMX5.1.0选择 Human Interface Device Class(HID)生成的代码,void *USBD_static_malloc(uint32_t size)这个函数内就会有static uint32_t mem[(sizeof(USBD_CUSTOM_HID_HandleTypeDef)/4+1)];这句,而5.1.0之前的版本不管选择哪个类型的HID类型,都不会使void *USBD_static_malloc(uint32_t size)报错

不知道大家有没有遇到这个问题呢,难道是CubeMX5.1.0的BUG吗

0条回答

一周热门 更多>