为了缩小故障的范围,我使用的代码全部出自ST 最新库中的 VCP Demo。中断, CallBack 均没有修改。
仅仅修改了下列函数,便于测试:
static uint16_t VCP_DataTx (uint8_t* Buf, uint32_t Len)
{
uint32_t i;
for (i=0; i<Len; i++) {
APP_Rx_Buffer[APP_Rx_ptr_in++]=Buf;
if(APP_Rx_ptr_in == APP_RX_DATA_SIZE)
APP_Rx_ptr_in = 0;
}
return USBD_OK;
}
uint8_t Bu[8192];
static uint16_t VCP_DataRx (uint8_t* Buf, uint32_t Len) {
uint32_t Cnt;
Cnt=Buf[0]+((u16)Buf[1]<<8); // 收到的长度信息L
VCP_DataTx( Bu, Cnt); // 回发数据包
return USBD_OK;
}
|