Board logo

标题: STM32 USB虚拟串口(3) [打印本页]

作者: yuyang911220    时间: 2015-4-28 09:39     标题: STM32 USB虚拟串口(3)

2,修改代码hw_config.c删除无用代码,新建立2组,读FIFO和写FIFO的函数。后面会用到。
代码如下:
代码2
[url=][/url]
  1 /* Includes ------------------------------------------------------------------*/  2   3 #include "usb_lib.h"  4 #include "usb_prop.h"  5 #include "usb_desc.h"  6 #include "hw_config.h"  7 #include "usb_pwr.h"  8 #include "Queue.h"  9 10 11 /* Private typedef -----------------------------------------------------------*/ 12 /* Private define ------------------------------------------------------------*/ 13 /* Private macro -------------------------------------------------------------*/ 14 /* Private variables ---------------------------------------------------------*/ 15 ErrorStatus HSEStartUpStatus; 16 USART_InitTypeDef USART_InitStructure; 17 EXTI_InitTypeDef EXTI_InitStructure; 18 19 20 #define USB_COM_RX_BUF_SIZE         (1024 + 256) 21 #define USB_COM_TX_BUF_SIZE         (1024 + 256) 22 23 static QUEUE8_t m_QueueUsbComRx         = {0}; 24 static QUEUE8_t m_QueueUsbComTx         = {0}; 25 static uint8_t  m_UsbComRxBuf[USB_COM_RX_BUF_SIZE]      = {0};      26 static uint8_t  m_UsbComTxBuf[USB_COM_TX_BUF_SIZE]      = {0};    27 28 static void IntToUnicode (uint32_t value , uint8_t *pbuf , uint8_t len); 29 /* Extern variables ----------------------------------------------------------*/ 30 31 extern LINE_CODING linecoding; 32 33 /* Private function prototypes -----------------------------------------------*/ 34 /* Private functions ---------------------------------------------------------*/ 35 /******************************************************************************* 36 * Function Name  : Set_System 37 * Description    : Configures Main system clocks & power 38 * Input          : None. 39 * Return         : None. 40 *******************************************************************************/ 41 void Set_System(void) 42 { 43   GPIO_InitTypeDef GPIO_InitStructure; 44 45   QUEUE_PacketCreate(&m_QueueUsbComRx, m_UsbComRxBuf, sizeof(m_UsbComRxBuf)); 46   QUEUE_PacketCreate(&m_QueueUsbComTx, m_UsbComTxBuf, sizeof(m_UsbComTxBuf)); 47    48   /* Enable USB_DISCONNECT GPIO clock */ 49   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO_DISCONNECT, ENABLE); 50 51   /* Configure USB pull-up pin */ 52   GPIO_InitStructure.GPIO_Pin = USB_DISCONNECT_PIN; 53   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 54   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 55   GPIO_Init(USB_DISCONNECT, &GPIO_InitStructure); 56    57   /* Configure the EXTI line 18 connected internally to the USB IP */ 58   EXTI_ClearITPendingBit(EXTI_Line18); 59   EXTI_InitStructure.EXTI_Line = EXTI_Line18; 60   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; 61   EXTI_InitStructure.EXTI_LineCmd = ENABLE; 62   EXTI_Init(&EXTI_InitStructure); 63 64    65 } 66 67 /******************************************************************************* 68 * Function Name  : Set_USBClock 69 * Description    : Configures USB Clock input (48MHz) 70 * Input          : None. 71 * Return         : None. 72 *******************************************************************************/ 73 void Set_USBClock(void) 74 { 75   /* Select USBCLK source */ 76   RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5); 77    78   /* Enable the USB clock */ 79   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE); 80 } 81 82 /******************************************************************************* 83 * Function Name  : Enter_LowPowerMode 84 * Description    : Power-off system clocks and power while entering suspend mode 85 * Input          : None. 86 * Return         : None. 87 *******************************************************************************/ 88 void Enter_LowPowerMode(void) 89 { 90   /* Set the device state to suspend */ 91   bDeviceState = SUSPENDED; 92 } 93




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0