在开发USB设备时可能会经常遇到烧录程序后要重新拔插USB接口才能使USB设备正常工作,原因是因为重新烧录后,PC没有对USB设备进行重枚举,导致无法正常工作,解决方法很简单,我们只要在程序启动后第一时间对USB接口的DP引脚进行一下拉低操作即可(模拟一下拔过程),当程序完成USB接口初始化后,相当于一直插入操作,这样PC就会对设备进行重枚举,设备就可以正常操作了:

例如可以有如下代码:

// 以下操作加入是实现USB自动重枚举

GPIO_InitStruct.Pin = GPIO_PIN_12;

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_InitStruct.Pull = GPIO_PULLDOWN;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_RESET);

HAL_Delay(500);    //  这里可以适当加点延时,可以保证有重枚举有效

上面的代码尽量放在上电后第一时间操作,如放在MAIN函数的GPIO操作部分,一定要放在USB 设备IO初始化操作之前。

STM32 usb 设备实现自动重枚举相关推荐

  1. STM32 USB设备远程唤醒机制详解

    目录 1.USB Resume信号 2.USB远程唤醒的方式 3.J状态和K状态 4.STM32 USB设备远程唤醒机制详解 5.主机对设备远程唤醒功能状态的获取.清除和设置 1.USB Resume ...

  2. 用hidusb.sys还是winusb.sys读写一个只有In/Out Interrupt Endpoints的STM32 USB设备?

    最近,公司使用STM32F407,开发了一个基于USB的CAN设备(内部称为CAN盒子),USB的固件使用STM32官方提供的BSP进行开发,而没有做任何修改的这个固件,只支持3个EndPoints: ...

  3. linux自动挂载usb光驱,Linux下使用Usbmount实现USB设备自动挂载

    Usbmount 工具可以实现usb设备得自动加/卸载. $ sudo apt-get install usbmount usbmount的配置文件为/etc/usbmount/usbmount.co ...

  4. linux自动挂载usb打印机,Linux下使用Usbmount实现USB设备自动挂载

    Usbmount 工具可以实现usb设备得自动加/卸载. $$ sudo apt-get install usbmount usbmount的配置文件为/etc/usbmount/usbmount.c ...

  5. Android 连接USB设备(主机模式)

    Android 连接USB设备(主机模式) Android 连接USB设备(配件模式) 两种模式(主机.配件) 首先,要了解Android 连接USB设备主要通过两种模式, USB 配件模式. USB ...

  6. USB over Network通过本地网络或 Internet 共享的远程 USB 设备

    USB over Network 允许使用通过本地网络或 Internet 共享的远程 USB 设备. 无论您是在另一个办公室甚至是国家/地区,现在您都可以远程使用任何 USB 设备,就像它连接到本地 ...

  7. 【远程访问与设备重定向】上海道宁为您助您远程共享USB设备与USB设备重定向到远程会话

    USB over Network用于 通过LAN或Internet 与远程USB设备进行通信 远程USB设备可供多个用户共享 当您连接远程共享USB设备时 它们会被识别为 直接连接到本地计算机 USB ...

  8. php重签ipa,免电脑iOS无限自动重签IPA工具ReProvision教学

    当我们透过电脑使用Cydia Impactor来安装IPA时,都会面临到七天授权到期问题,过去都可透过  Ext3nder来解决七天到期问题,不过在32位元设备和iOS 9版本上是无法使用,现在也已经 ...

  9. 【STM32学习】 基于STM32 USB存储设备的w25qxx自动判断容量检测

    简介 使用STM32USB功能配置成Mass Storage Class 存储介质使用w25qxx做U盘时,发现一个比较好玩的事情. 当换不同容量的存储介质时需要改下程序,显示不同的大小. 更改usb ...

最新文章

  1. 《人件集》阅读笔记第一篇
  2. renderthread是什么_Android 旗舰机标配的高帧屏(120Hz),对各位 App 开发者有什么影响?...
  3. BZOJ1795 : [Ioi2008]Pyramid Base 金字塔地基
  4. java自定义注解类
  5. 2005年3月9日笔记
  6. 信息抽取 | 72篇论文梳理:涉及NER、复杂关系、小样本、文档级、多模态、开放域抽取...
  7. Linux双网卡下的网络故障排查
  8. Vs2010工具栏显示“开始执行“按钮
  9. excel中添加图片的代码
  10. adams c语言,adams2013编译c语言用户子程序生成dll超详细教程讲解.docx
  11. 渗透测试-SQL注入检测
  12. AES前端flutter加密与后端java解密pad block corrupted问题
  13. 《知识就是力量》第二期——“怎样做一个更有价值的人”笔记
  14. 美团html页面代码,html+css+js制作美团官网
  15. 想成为“独立名师”,你还要做到哪几点?
  16. 1#操作系统#响应比
  17. 简单的Animation实现角色行走(学习笔记)
  18. jquery选择器找到含有href属性的所有a标签
  19. 关于栈迁移的那些事儿
  20. 微星a320m主板可以装服务器系统吗,技嘉a320m主板:微星a320m主板,正式再见

热门文章

  1. canvas 移动光速特效-
  2. Sizzle 官方API翻译
  3. JavaScript eval()
  4. get请求的乱码解决方式
  5. 矩阵正态分布基础1 外形式、外积与微分形式简介
  6. 量子力学 一 基础1 角动量
  7. UA PHYS515A 电磁理论III 静磁学问题2 标量势方法与向量势方法简介
  8. UA MATH563 概率论的数学基础 中心极限定理15 Kolmogorov 0-1律
  9. UA MATH571B 试验设计VI 随机效应与混合效应2
  10. WPF 3D基础学习 - 画布、相机、Model3D(1)