#define USB_MAX_RECEIVE_LEN 4096
uint8_t rxData[USB_MAX_RECEIVE_LEN] = {0};
uint32_t rxLen = 0;
extern USBD_HandleTypeDef hUsbDeviceFS;
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USB_DEVICE_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
//CDC_Receive_FS(rxData, &rxLen);
if( rxLen > 0 ){
HAL_Delay(10);
CDC_Transmit_FS( rxData, rxLen );//通过usb虚拟串口发送回去
rxLen = 0;
}
}
/* USER CODE END 3 */
}
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
/* USER CODE BEGIN 6 */
extern uint8_t rxData[USB_MAX_RECEIVE_LEN] ;
extern uint32_t rxLen ;
__disable_irq();
for( uint32_t i = 0; i < *Len; i ++ ){
rxData[rxLen+i] = Buf[i];
}
rxLen += *Len;
__enable_irq();
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
return (USBD_OK);
/* USER CODE END 6 */
}