我用的是spcomm控件,发送一条指令,串口就返回相应的数据,我有一个数据处理段.
我发送条一命令,他反回一条数据给我,在那里我要连续的处理250次,当处理了到50条
左右行就不动了,串口好像就死了样的,要重启电脑才可继续使用.但是发送的数据量都很小啊.在里面我都加了延时函数啊.用别的工具调式,他就没有问题,所以不是单片机程序的问题.

解决方案 »

  1.   

    我也用spcomm控件,没遇到过你的情况,如果不行,建议换个APRO用用,我就是两个一起用的,SPCOMM一下发完一给数据可能不太好,你一字符一字符发下试试
      

  2.   

    在用 串口通讯的时候有必要加上一部分的校验的
    试试用 CPort 控件,很好用的
    另外你在用 串口通讯 的时候,不能假设数据是一次全部读到的,
    比如你往串口发送 1k 数据 ,在接受的时候 1k 有可能是分多次到达的,
    即使你发两个字节也是这样的
    所以,通常在处理 串口通讯 事件的时候需要 设置一个全局变量 再次缓冲一下数据
    若你交换的数据都是文本的话,你可以用一个 0xAA 作为一个数据包的开始
      

  3.   

    建议用专业的串口VCLhttp://www.56kc.net/web/commwatch.aspx
      

  4.   

    好象和你用spcomm没有关系  希望你铁一下你的代码  应该能帮你解决
      

  5.   

    典型得串口堵塞。
    你循环250次,你如果用定时器,虽然timer可以随便定义,但最小数值是大约0。1秒,不会太快
    同时,串口通讯有结束握手的指令,使用前先清串口缓存,再握手,再通讯,再握手结束。
      

  6.   

    l楼上的朋友  我不这么认为   0。1秒,也就是sleep(100)了   呵呵
    觉的波特率 是重要的
      

  7.   

    我用API函数写的串口通信,在循环读写串口数据时,如果大量的运行其他程序出现过这样的问题,但是修改了间隔时间的话问题就解决了