STM32F429Discovery,USB做Device,使用SDRAM,模拟U盘
最近一个项目,需要使用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);
}
/**
* @briefUSB_OTG_BSP_Init
* Initializes BSP configurations
* @paramNone
* @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);
}
C:\Users\developer\Desktop\aa.png C:\Users\developer\Desktop\aa.png USB分析软件抓到了现象
帖子挂了一个星期了,帖子沉了,不过不知道怎么回事,我的程序改了之后,可以了,暂时还没找到原因,也记不清改过哪里了 能把改的代码给我看看吗?我最近写了一个USB的U盘,F407的,准备往429上移植。正好可以相互交流一下。
页:
[1]