最近做了个USB跟上位机的通信,需要软件对MCU进行复位,复位后如果USB没有拔插,PC就不会重新枚举USB为了解决这个问题,我做了软件复位跟,软件模拟USB拔插。
这里我用的是HAL库的软件复位,复位前先把中断关掉,再复位,代码如下:
至于怎么实现模拟USB拔插,则只需要在USB初始化前把PA12进行一个拉低——延时——拉高的操作即可,一般PC机可以通过检查USB的D+引脚来判断USB是否有变化的,对于STM32的PA12就对应了这个引脚,所以可以通过模拟这个引脚电平变化实现模拟USB拔插操作。先模拟拔插,再进行USB初始化,这样PC就可以重新枚举USB了,代码如下:
注意,模拟拔插放在USB初始化前,这样就可以在每次复位后都模拟拔插,并可以让PC重新枚举USB了。
相关资源:PPT中FLASH插入软件.rar-Flash文档类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!