Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- file usb_bsp.c:
- void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev) {
- GPIO_InitTypeDef GPIO_InitStructure;
- #ifdef USE_USB_OTG_FS
- RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA , ENABLE); // Bus RCC_AHB1Periph to RCC_AHBPeriph
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | // OTG FS Data -
- GPIO_Pin_12; // OTG FS Data +
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO_Speed_100MHz to GPIO_Speed_50MHz
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
- GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_14); //GPIO_AF_OTG1_FS to GPIO_AF_14
- GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_14); //GPIO_AF_OTG1_FS to GPIO_AF_14
- #ifndef USB_VCP_DISABLE_VBUS
- // Configure VBUS Pin
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO_Speed_100MHz to GPIO_Speed_50MHz
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
- GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- #endif
- #ifndef USB_VCP_DISABLE_ID
- // Configure ID pin
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
- GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO_Speed_100MHz to GPIO_Speed_50MHz
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_14); //GPIO_AF_OTG1_FS to GPIO_AF_14
- #endif
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE); //RCC_AHB2Periph_OTG_FS to RCC_APB1Periph_USB
- ////......
- ////////////////////////////////////////////// --- // --- //////////////////////////
- void USB_OTG_BSP_EnableInterrupt(USB_OTG_CORE_HANDLE *pdev) {
- NVIC_InitTypeDef NVIC_InitStructure;
- #ifdef USE_USB_OTG_FS
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
- NVIC_InitStructure.NVIC_IRQChannel = USB_HP_IRQn; //OTG_FS_IRQn to USB_HP_IRQn or USB_LP_IRQn (?)
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = USB_VCP_NVIC_PRIORITY;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = USB_VCP_NVIC_SUBPRIORITY + 2;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- #else
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
- NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = USB_VCP_NVIC_PRIORITY;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = USB_VCP_NVIC_SUBPRIORITY + 2;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
- NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_EP1_OUT_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = USB_VCP_NVIC_PRIORITY;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = USB_VCP_NVIC_SUBPRIORITY + 1;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
- NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_EP1_IN_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = USB_VCP_NVIC_PRIORITY;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = USB_VCP_NVIC_SUBPRIORITY;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- #endif
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement