
本帖最后由 wmfwin 于 2019-3-8 11:04 编辑 新版CubeMX5.1.0生成自定义人体输入型设备(HID)驱动代码报错 使用新版的CubeMX5.1.0选择USB_DEVICE选择 Class For FS IP ——> Custom Human Interface Device Class(HID)如下图 ![]() 标识1、 选择的就是Custom Human Interface Device Class(HID) 标识2、只要选择标识1的类型,标识2的选项就是一个感叹号,并且后面的下拉框没有任何选项 选择这个USB模式后,生成的代码,在usbd_conf.c 文件中,以下函数中会有报错的 void *USBD_static_malloc(uint32_t size) { return mem; } ![]() 新版cubemx生成的就会使这个函数报错,我下载5.1.0之前的版本 比如cubemx5.0.1版,生成的代码,在这个函数不会报错,如下图 ![]() 通过对比发现,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吗 |
评分
查看全部评分