|
最近一个项目,需要使用USB模拟成一个U盘,存储介质用STM32F429Discovery板上的8MB SDRAM,模拟一个U盘,在PC上无法显示盘符,但是看PC的设备管理器,U盘驱动好像加载成功了,附上初始化USB引脚的代码,其他代码,在网上找的一个参考代码改的 static void USB_PowerOn_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd ( RCC_AHB1Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_SetBits(GPIOC,GPIO_Pin_4); //PC4设置VBUS输出5V RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB , ENABLE); //引脚没用到,设置为输入 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); } /** * @brief USB_OTG_BSP_Init * Initializes BSP configurations * @param None * @retval None */ void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev) { GPIO_InitTypeDef GPIO_InitStructure; USB_PowerOn_Init(); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB , ENABLE); RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_OTG_HS, ENABLE) ; GPIO_PinAFConfig(GPIOB,GPIO_PinSource14,GPIO_AF_OTG2_FS) ; GPIO_PinAFConfig(GPIOB,GPIO_PinSource15,GPIO_AF_OTG2_FS) ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15; GPIO_Init(GPIOB, &GPIO_InitStructure); } |
微信公众号
手机版
这是我用USB分析软件,小弟我对USB不是很了解,求高手指导,从图中看,是主机发了什么命令,设置没有回复或 ...