usb转为虚拟串口,请进!
最近在做stm的USB的虚拟串口实验。如下面的程序,我要实现的是当某个.bit文件通过usb虚拟串口发送到真实串口“发送完后”,跳出while(1)这个死循环,试了好多种办法都不行。望大家指教。
下面是程序:
while(1)
{
if(bDeviceState == CONFIGURED)
{
if(Flag_USBDataReceive)
{
count_out = GetEPRxCount(ENDP3); //获得接收到的数据长度
PMAToUserBufferCopy(buffer_out, ENDP3_RXADDR, count_out); //将数据从USB EP3 RX的缓冲区拷贝到用户指定的数组中
for (i = 0; i < count_out; i++)
{
USART_SendData(USART1, *(buffer_out+i));
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
}
//QueueWrite((void *)buf_usb_to_uart, *(buffer_out+i)); //add by sun zhilong. 2012.01.30
SetEPRxValid(ENDP3); //完成拷贝后置有效状态,从而EP3发送ACK,主机可以进行下一个数据包的发送
Flag_USBDataReceive = 0;
}
}
}