STM32F7xx基于HAL库的USB_CDC接收数据的函数调用
liusheng1097:
有一个疑问 [code=csharp]
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)//内部函数 作用域仅为本文件其他文件不使用此函数。可以防止重名函数?
{ //USB虚拟串口一次最多 接受64字节数据,多于此 会连续调用CDC_Receive_FS函数
/* USER CODE BEGIN 6 */
temp.rxlen = temp.rxlen + (*Len);
if(temp.rxlen < APP_RX_DATA_SIZE && UserRxBufferFS[temp.rxlen - 2] != 0x0d \
&& UserRxBufferFS[temp.rxlen - 1] != 0x0a)//发送时必须以\r\n结尾 接受的数组内容长度小于接受最大值,并且接受到的数组内容不是x,x,x,0x0d,0xda;
{
//---继续接受操作--------------
USBD_CDC_SetRxBuffer(&hUsbDeviceFS,UserRxBufferFS + temp.rxlen); // 1是的结构体类型PCLASSDATA成员给到 第二个形参是 pbuffer的地址
//将要接受的数据给到 hUsbDeviceFS
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
}
else
{
temp.flag = 1; //接受完成
UserRxBufferFS[temp.rxlen] = 0;
}
return (USBD_OK);
/* USER CODE END 6 */
}
形参 uint8_t *Buf 都没用上呀, UserRxBufferFS里面的数据来源是哪里 没有弄清楚。推测它是OUT端点的接收缓冲区
[/code]
|