USBH_HandleEnum()里定义了一个64字节的局部数组Local_Buffer[ ],并在获取厂商描述符、产品描述符和序列号的时候使用。但是使用的时候却认为最大可以用到0xff个字节。如果U盘的这3个字符串中任何一个超过64字节就会导致HardFault(我遇到一个U盘的序列号是120字节)。解决方法是把下图中3个0xff改为63,或者把Local_Buffer的容量从64改为256.

static USBH_Status USBH_HandleEnum(USB_OTG_CORE_HANDLE *pdev, USBH_HOST *phost)
{USBH_Status Status = USBH_BUSY;uint8_t Local_Buffer[64];. . .case ENUM_GET_MFC_STRING_DESC:  if (phost->device_prop.Dev_Desc.iManufacturer != 0){ /* Check that Manufacturer String is available */if ( USBH_Get_StringDesc(pdev,phost,phost->device_prop.Dev_Desc.iManufacturer, Local_Buffer , 0xff) == USBH_OK). . .case ENUM_GET_PRODUCT_STRING_DESC:   if (phost->device_prop.Dev_Desc.iProduct != 0){ /* Check that Product string is available */if ( USBH_Get_StringDesc(pdev,phost,phost->device_prop.Dev_Desc.iProduct, Local_Buffer, 0xff) == USBH_OK). . .case ENUM_GET_SERIALNUM_STRING_DESC:   if (phost->device_prop.Dev_Desc.iSerialNumber != 0){ /* Check that Serial number string is available */    if ( USBH_Get_StringDesc(pdev, phost,phost->device_prop.Dev_Desc.iSerialNumber, Local_Buffer, 0xff) == USBH_OK). . .
}

ST USB Host库USBH_HandleEnum()的一个bug相关推荐

  1. 由AFX_IDW_PANE_FIRST宏的含义分析界面库XTP的一个bug

    Codejock的界面库Xtreme Toolkit Pro(XTP)是当前MFC开发中发展得比较成熟,应用也颇为广泛的几个界面库之一,其强大的界面美化功能以及简便的使用步骤深受不少MFC程序员的青睐 ...

  2. 记numpy高速封装库bottleneck的一个bug

    博主在使用bottleneck的移动平均函数时,对0的平均得到了很接近0的非零值,这是一个官方已知的bug,但是还未修复. 这些值的产生可能是因为bottleneck在底层用C编写函数的时候,数据类型 ...

  3. STM32 之三 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序)

    写在前面 目前,ST的USB驱动有两套,一套是早期的独立版USB驱动,官方培训文档中称为Legacy library:一套为针对其Cube 系列的驱动,根据芯片不同可能有区别,具体见对应芯片的Cube ...

  4. STM32 USB Host 同时连接多个设备样例(如鼠标和键盘)--原创

    STM32 USB Host 同时连接多个设备样例(如鼠标和键盘) 在网上搜了很多都是USB Host单独连接鼠标或键盘的样例, 而当前很多无线鼠标键盘都是并到一个USB口上的, 也就是同一个USB有 ...

  5. 基于 CherryUSB 调试 dwc2 usb host 笔记

    本文由RT-Thread论坛用户@sakumisu原创发布:https://club.rt-thread.org/ask/article/9c31ce71ead26c2b.html 背景 之前适配 D ...

  6. Android开发者指南(29) —— USB Host and Accessory

    前言 本章内容为Android开发者指南的 USB章节,译为"USB主从设备",版本为Android 4.0 r1,翻译来自:"太阳火神的美丽人生",欢迎访问他 ...

  7. linux读写usb host,LINUX下USB1.1设备学习小记(3)_host与device

    各位还记得"任何传输都是由host发起的"这句话么~ 在usb设备插入pc中到拔出usb设备,都是由host进行询问的 一个usb鼠标的工作流程可以表达如下: usb鼠标插入pc中 ...

  8. Android 系统使用USB OTG功能/打开USB Host API功能

    步骤一:确定 Android 设备是否支持 USB Host 功能,具体可以通过以下步骤进行确认: 1. 查看手机或平板设备参数,或者直接联系厂家咨询: 2. 使用 UsbHostDiagnostic ...

  9. 网络摄像头转usb接口_Arduino + USB Host Sheild 实现USB鼠标转PS/2接口

    制作缘由 公司内网只有PS/2接口,希望可以使用无线鼠标(貌似没有PS/2接口的).而那种USB转PS/2的转接头只是简单的连线,需要键盘或鼠标本身支持PS/2模式才可以正常工作,现代的USB鼠标接收 ...

最新文章

  1. python逐步回归筛选变量_利用python实现逐步回归
  2. AB1601串口之bugs
  3. python 全局变量引用与修改
  4. 怎么解决 数据丢失的问题_ThreadLocal中内存泄漏和数据丢失问题的问题浅析及解决方案...
  5. C Looooops POJ - 2115
  6. 信息学奥赛C++语言:短信计费
  7. document.write()
  8. mysql主主复制半同步_mysql主从复制中的半同步复制
  9. php 采集暂停的原因,为什么小弟我curl的每次都只能抓取18个左右就自动停止了...
  10. mysql语句怎么替换_mysql怎么批量替换sql语句
  11. LeetCode 6罗马数字转整数
  12. 二级c语言试题讲解,计算机二级C语言真题讲解.ppt
  13. SAP - MM - 第3篇 - 供应商主数据
  14. 刷榜中ASO优化中下载量与评论之间的对应比
  15. 2021年高考成绩查询湖南电信,湖南省通信管理局关于开展2021年全省电信网码号资源年报和检查工作的通知...
  16. linux钓鱼邮件,钓鱼邮件传播勒索病毒再升级,不落地加大查杀难度
  17. 栈和堆的区别是什么? 为什么说栈的速度快,堆的速度慢?
  18. 使用Arthas排查问题
  19. 新课程上线 | 学习使用 Kotlin 进行 Android 开发的最佳时机!
  20. a后缀名是什么格式文件,怎么打开.a文件

热门文章

  1. 墙裂推荐!7个最佳的学习Python编程的开源库!
  2. 数字从0递增到指定数值
  3. Perceptron感知机代码讲解笔记
  4. python网络安全设计_基于Python的智能安防系统设计
  5. 用百度网盘下载磁力连接报错无法解析解决办法
  6. 计算机加解密的主要方法,一种计算机存储器的加密方法和解密方法技术
  7. APT组织Reaper新Dropper公开:NOKKI和DOGCALL存在关联性
  8. org.apache.hadoop.security .AccessControlException: Permission denied:解决方法
  9. VDI, VHD, VMDK 之间的区别
  10. 4k视频分辨率的码流_看视频常见的 720p、1080p、4k,这些分辨率到底包含了什么...