{
/* USER CODE BEGIN 6 */
USBD_CDC_SetRxBuffer(hUsbDevice_0, &Buf[0]); USBD_CDC_ReceivePacket(hUsbDevice_0); return (USBD_OK);
/* USER CODE END 6 */ }
该函数在收到数据时,将被系统调用,它的两个参数分别指向接收缓冲区和接收到的数据字节长度。显然我们可以编写一段代码,将接收到的数据送到应用程序指定的内存区,比如进行如下修改:
static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len) {
/* USER CODE BEGIN 6 */ uint8_t i;
USBD_CDC_SetRxBuffer(hUsbDevice_0, &Buf[0]); USBD_CDC_ReceivePacket(hUsbDevice_0); for(i = 0; i < *Len; i++)
app_rx_buf[i] = Buf[i];//将收到的数据转移到app_rx_buf数组中 rx_f = TRUE;//将收到数据标志位置位,用以通知应用程序 return (USBD_OK);
/* USER CODE END 6 */ }
这样就可以进行数据的上传和下传了。