2013-11-25 131 views
3

我有一个连接到USB与以下引脚STM32F107 USB重新枚举

USB_OTG_VBUS一个STM32F107板:PA9 USBDM:PA11 USBDP:PA12

我有一个需要项目同时使用Virtual Com Port和USB Mass Storage。它需要重新枚举USB,然后执行软件重置以启用不同的USB类。

我已经尝试了各种不同的事情,让它重新枚举,但到目前为止一直无法,重新枚举的唯一方法是拔掉USB电缆。

这些都是一些我有没有成功尝试的功能

USB_OTG_DisableGlobalInt(&USB_OTG_dev); 
USB_OTG_WRITE_REG32(&USB_OTG_dev.regs.GREGS->GINTSTS, 0xBFFFFFFF); 
USB_OTG_CoreReset(&USB_OTG_dev); 
USBD_DeInit(&USB_OTG_dev); 
DCD_DevDisconnect(&USB_OTG_dev); 
NVIC_SystemReset(); 

会有人对如何让USB重新枚举时,它仅配置了这3个引脚的STM32F107任何想法?

+0

做一个USB复合设备会不会更容易? –

回答

2

如果您使用演示板,它具有通过微控制器引脚断开USB的功能。如果你不使用演示板,你需要自己拿出这个功能,通过断开USB_DM/USB_DP线上的上拉电阻......

1

也有类似的问题。试试这个:

USB_OTG_dev.regs.GREGS->GCCFG = 0; 

等一下,然后重新初始化USB。