Advertisement
Guest User

Untitled

a guest
Jul 8th, 2015
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.40 KB | None | 0 0
  1. file usb_bsp.c:
  2.  
  3. void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev) {
  4.   GPIO_InitTypeDef GPIO_InitStructure;  
  5. #ifdef USE_USB_OTG_FS
  6.     RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA , ENABLE);  // Bus RCC_AHB1Periph to RCC_AHBPeriph
  7.     GPIO_InitStructure.GPIO_Pin =   GPIO_Pin_11 |   // OTG FS Data -
  8.                                     GPIO_Pin_12;    // OTG FS Data +
  9.  
  10.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO_Speed_100MHz to GPIO_Speed_50MHz
  11.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  12.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  13.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
  14.     GPIO_Init(GPIOA, &GPIO_InitStructure);  
  15.  
  16.     GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_14); //GPIO_AF_OTG1_FS to GPIO_AF_14
  17.     GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_14); //GPIO_AF_OTG1_FS to GPIO_AF_14
  18. #ifndef USB_VCP_DISABLE_VBUS
  19.     // Configure  VBUS Pin
  20.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  21.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO_Speed_100MHz to GPIO_Speed_50MHz
  22.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  23.     GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
  24.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
  25.     GPIO_Init(GPIOA, &GPIO_InitStructure);    
  26. #endif
  27.  
  28. #ifndef USB_VCP_DISABLE_ID
  29.     // Configure ID pin
  30.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  31.     GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
  32.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;  
  33.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  // GPIO_Speed_100MHz to GPIO_Speed_50MHz
  34.     GPIO_Init(GPIOA, &GPIO_InitStructure);  
  35.     GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_14); //GPIO_AF_OTG1_FS to GPIO_AF_14
  36. #endif
  37.  
  38.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
  39.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE); //RCC_AHB2Periph_OTG_FS to RCC_APB1Periph_USB
  40.  
  41. ////......
  42. ////////////////////////////////////////////// --- // --- //////////////////////////
  43.  
  44. void USB_OTG_BSP_EnableInterrupt(USB_OTG_CORE_HANDLE *pdev) {
  45.     NVIC_InitTypeDef NVIC_InitStructure;
  46. #ifdef USE_USB_OTG_FS
  47.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  48.     NVIC_InitStructure.NVIC_IRQChannel = USB_HP_IRQn;  //OTG_FS_IRQn to USB_HP_IRQn or USB_LP_IRQn (?)
  49.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = USB_VCP_NVIC_PRIORITY;
  50.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = USB_VCP_NVIC_SUBPRIORITY + 2;
  51.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  52.     NVIC_Init(&NVIC_InitStructure);
  53. #else
  54.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  55.     NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_IRQn;
  56.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = USB_VCP_NVIC_PRIORITY;
  57.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = USB_VCP_NVIC_SUBPRIORITY + 2;
  58.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  59.     NVIC_Init(&NVIC_InitStructure);
  60.  
  61.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  62.     NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_EP1_OUT_IRQn;
  63.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = USB_VCP_NVIC_PRIORITY;
  64.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = USB_VCP_NVIC_SUBPRIORITY + 1;
  65.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  66.     NVIC_Init(&NVIC_InitStructure);
  67.  
  68.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  69.     NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_EP1_IN_IRQn;
  70.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = USB_VCP_NVIC_PRIORITY;
  71.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = USB_VCP_NVIC_SUBPRIORITY;
  72.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  73.     NVIC_Init(&NVIC_InitStructure);
  74.  
  75. #endif
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement