具体情况是这样的:程序运作:
    PC发送请求或命令字节,经由数据转换器到达目标设备,目标设备返回响应的数据,之后PC处理目标设备回传的数据并给出相应的动作和结论;PC数据发送特性:
    1、接收每次从目标设备发送过来的数据并分析,获取部分并发送(因为字节发送格式里要求进行发送前后设备状态分析);
    
目标设备特性:
    1、目标设备始终以 10 ms/次得速度发送数据,未接受请求或命令时发送循环自我检测数据,接受命令后按要求回传;目前状况:
    1、堆栈空间溢出。
    2、串口可以及时接收到数据,但发送数据延时严重,甚至不发送数据。我尝试动作:
    1、因为数据要进行递归分析之后才能发送字节,我将递归处理部分统统注释之后,程序正常收发,无延时现象(此时相应的状态对比部分用固定字节)。求高人指点思路,不胜感激先!

解决方案 »

  1.   

    PC 确系比较老:内存只有512M,CPU也只有2.2Hz;
    优化程序我也想到了,我有个习惯就是一个功能对应一个函数(方法),现在都改到 OnComm 事件里面去处理了,(节约内存,少声明变量)。
    更换开发工具提高效率,可以说具体点吗?
    还有,我认为以上电脑配置运行一个程序应该可以吧,我会尝试换机器!
      

  2.   

    如用VC来写个API接口,VB调用这样效率会高很多
      

  3.   

    大流量和什么通讯方式无关,这完全是自己程序的数据处理问题,因为在Windows中所有的硬件层通讯都是以一小段一小段数据的文件读写方式进行的。所以无论是网络、USB、串口在数据的处理上都可以用类以的方式去处理,所以是否是大量的数据进行串口传输处理方式都可以是一种过程来处理。你可以参考一些网络处理过程来处理这种数据,相信会对你有所帮助。
      

  4.   

    本人对串口通讯还算有点研究,
    根据你的描述,你的目标设备10ms/每次发送数据,是不是就是每10ms发送一次,每次数据量有很大,如果是这样的话,速度太快了,PC估计来不及处理的,VB本身不能多线程来优先处理到来的信息,堆栈肯定溢出。再说了,优先处理到来的信息,但是你的递归还未完成,最终信息就在那儿堆砌。系统永远处理不完,最终还算崩溃。也就是说 你的问题应该无解。你能把问题描述再清晰一点吗?
      

  5.   

    搞定了,感谢大家的热情恢复,尤其是二楼的GG。给分了O(∩_∩)O哈!给分了哈,我分少,人人都有,分少情意重啊!^_^