2013-11-25 60 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。