USBD_LL_PrepareReceive(pdev, CDC_OUT_EP, hcdc->RxBuffer, CDC_DATA_HS_OUT_PACKET_SIZE); } else { /* Prepare Out endpoint to receive next packet */ USBD_LL_PrepareReceive(pdev, CDC_OUT_EP, hcdc->RxBuffer, CDC_DATA_FS_OUT_PACKET_SIZE); / +++lakun /* Prepare Out endpoint to r...
16 static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) 17 { 18 /* USER CODE BEGIN 6 */ 19 CDC_Transmit_FS(Buf, *Len); 20 21 USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); 22 USBD_CDC_ReceivePacket(&hUsbDeviceFS); 23 return (USBD_OK); 24 /* USER CODE END...
找到CDC_Receive_FS函数,这个函数如果USB虚拟串口数据收到就会被调用,我们在这个函数中将收到的数据在发回去,只需要添加CDC_Transmit_FS(Buf, *Len);这一句即可,如下图: 然后编译工程并下载,接上USB之后,设备管理器COM出现一个新的端口: 我们使用串口调试助手给它发数据: 6、...
使用CDC_Transmit_FS函数发送数据: char str[] = "Hello World!\r\n"; while (1) { CDC_Transmit_FS((uint8_t*)str, strlen(str)); HAL_Delay(2000); } 3.4 接收数据 在usbd_cdc_if.c中,可以实现一个回调函数来处理接收到的数据: static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *...
CDC_Control_FS这个函数是实现CDC相关请求的管理,像上位机下发的串口参数就是通过这个函数接收的,这个函数比较长就不贴图。CDC_Receive_FS这个函数在USB接收到数据时就会被调用,是用于处理接收数据的。除了上面操作句柄里的四个函数外,usbd_cdc_if.c还提供了一个接口函数用于USB发送数据的函数...
CDC_Receive_FS(uint8_t *Buf, uint32_t *Len):USB CDC接收函数 CDC_Transmit_FS(uint8_t* Buf, uint16_t Len):USB CDC发送函数 USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev) USBD_CDC_ReceivePacket(USBD_HandleTypeDef *pdev) 先说说这几个函数的关系:CDC_Transmit_FS---调用--->USBD_CD...
1、使用CDC_Receive_FS()能够正常接收数据,单独采用CDC_Transmit_FS()定时发送任意长度数据也正常,...
CDC_DATA_FS_IN_PACKET_SIZE);pdev->ep_in[CDC_IN_EP & 0xFU].is_used = 1U;/* Open EP ...
因为它的创新,单片机的使用变得越来越简单了,甚至没接触过硬件的看手册也能很快掌握。它首创的提供了库...
在CDC_Receive_FS这个函数里面就可以得到VCP发送过来的数据:重映射printf输出 也可以把USB作为printf来...