打印
[应用相关]

usb VirtualCOMPort 例子会丢失数据,请高手帮忙分析原因

[复制链接]
3787|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shanggzq|  楼主 | 2008-10-29 22:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
shanggzq|  楼主 | 2008-10-29 23:12 | 只看该作者

没人碰到这问题吗?

使用特权

评论回复
板凳
yangbo_zd| | 2008-10-30 13:45 | 只看该作者

例程本来速度就不高,丢数是正常的

使用特权

评论回复
地板
shanggzq|  楼主 | 2008-10-30 14:46 | 只看该作者

能请你具体说一下,有办法克服吗?

使用特权

评论回复
5
香水城| | 2008-10-30 16:40 | 只看该作者

VirtualCOMPort 例子丢失数据的可能原因

刚刚收到武汉力源的朋友发来的email如下,楼主可以试试:

STM32虚拟串口提供的代码存在丢失串口数据的问题,其可能原因如下:
 
    以下是串口接收中断调用的函数及USB发送完回调函数
void USART_To_USB_Send_Data(void)
{
 if (linecoding.datatype == 7)
  {
    buffer_in[count_in] = USART_ReceiveData(USART1) & 0x7F;
  }
  else if (linecoding.datatype == 8)
  {
    buffer_in[count_in] = USART_ReceiveData(USART1);
  }
  count_in++;
  
  UserToPMABufferCopy(buffer_in, ENDP1_TXADDR, count_in);
  
  SetEPTxCount(ENDP1, count_in);
  SetEPTxValid(ENDP1);
}
 
void EP1_IN_Callback(void)
{
  count_in = 0;
}

    其中 count_in为串口接收数据指针,串口接收中断及USB发送完回调函数都会修改count_in指针,这样就会造成数据丢失。
    
    以上代码版本为V2.2.1
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* File Name          : main.c
* Author             : MCD Application Team
* Version            : V2.2.1
* Date               : 09/22/2008
* Description        : Virtual Com Port Demo main file
********************************************************************************

使用特权

评论回复
6
national6| | 2008-10-30 17:00 | 只看该作者

楼主 帮帮我啊,

你那个 usb VirtualCOMPort 是怎么装的啊,,我一直没有搞懂   ,我装的是VCPDriver_V1.1_Setup  插上USB后没有反应呢?

使用特权

评论回复
7
national6| | 2008-10-30 17:27 | 只看该作者

USB虚拟COM端口驱动 那里下啊 ??

USB虚拟COM端口驱动 那里下啊??

使用特权

评论回复
8
lixun00| | 2008-10-31 20:07 | 只看该作者

这个例子有些错误,你用bus hound 检测就会发现...

还有就是不稳定,以要是不停的向uSB写数据(不是通过硬件,虚拟写,1s钟写32BYTES,够慢吧)我测了一晚上,第二天就发现CPU占用率超高...也不知是哪里的原因

使用特权

评论回复
9
pheavecn| | 2008-11-2 21:01 | 只看该作者

这个例子就是个玩具,不具实用价值。

得好好改写。

使用特权

评论回复
10
静默| | 2008-11-2 23:08 | 只看该作者

按照5楼的思路,加上超时判断,还是可实用的。


附图是上周五半双工情况下测的结果。
全双工的情况差一点点,发的正确率在99.9%以上,收的正确率在99.5左右。
 
相关链接:https://bbs.21ic.com/upfiles/img/200712/20071218232522885.rar

使用特权

评论回复
11
simon21ic| | 2008-11-3 00:48 | 只看该作者

我好像没有碰到过这个问题

我也是使用VCOM虚拟一个串口,在这个串口上实现ST的ISP功能。至今没有发现过这个问题

使用特权

评论回复
12
shanggzq|  楼主 | 2008-11-3 14:54 | 只看该作者

回6楼

你把VirtualCOMPort例程编译好以后写入STM32,就可以提示你安装驱动程序了,要不系统就不提示了,或者有UNKOWN DEVICE

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

71

帖子

1

粉丝