|
之前的帖子,是串口没法识别,现在已经没问题了。
现在是通过串口调试软件和usb的监测软件,发现了一些问题。
感谢硬汉,串口调试和usb监测软件都是硬汉推荐的
发现usb的tx数据函数
uint8_t USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev)
{
USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pClassData;
if(pdev->pClassData != NULL)
{
if(hcdc->TxState == 0)
{
/* Tx Transfer in progress */
hcdc->TxState = 1;
/* Transmit next packet */
USBD_LL_Transmit(pdev,
CDC_IN_EP,
hcdc->TxBuffer,
hcdc->TxLength);
return USBD_OK;
}
else
{
return USBD_BUSY;
}
}
else
{
return USBD_FAIL;
}
}
仿真发现,一直是busy的状态,没法调用底层的
USBD_LL_Transmit(pdev,
CDC_IN_EP,
hcdc->TxBuffer,
hcdc->TxLength);
的这个函数
问题出在哪里呢,给分析分析,谢谢大家,附图!!
|
-
这个是串口成功识别截图
-
-
usbtrace 看到了usbVCP设备
-
红箭头就是vcp设备
-
IN 和OUT的管道拦截的数据,429没有发送数据
-
发现是usb CDC 里面着函数监测到一直是busy
|