串口通讯如何控制PC跟设备通信,串口
1)PC传字符给设备
2)当设备发送过来"stop"的字符时
3)PC 停止发送,并且记住发送到哪里了。
4)当设备发送来"start"的字符时候,又开始自动发送,直到PC发送结束
请问,这个怎么控制,才能使PC停住,在接收到设备反馈的信号“stop”,而且要马上就停,最多不超过5个字符,接收到"stop"以后。
感觉这个不好控制,大家有什么想法?

解决方案 »

  1.   

    这种控制要求软件和硬件编程的了!!软件倒是很好控制,用线程开关就可以了,SetEvent
    硬件的话不清楚了!!!
      

  2.   

    关键是,我发送了一桢,但是我发送途中,碰到"stop",突然叫我停止,误差在10个字符,我怎么停得那么准????
      

  3.   

    定时器定时,定时发送,用一个标志位记录是否送到过stop, 发之前判断标志位,如果是stop,就不发,如果收到start清空标志位,
      

  4.   

    都不知道什么时候接收停止发送请求“stop”,异步传输的话,在我发送途中,接收到,那咋办?能不能给详细一点?谢谢wozhaolala
      

  5.   

    10个字符的偏差是由轮询方式(stop信号)引起的。可以采用多线程查询、或则降低传输频率或者楼上说的单字节传输握手方式
      

  6.   

    软握手有Xon,Xoff。(0x11,0x13)
    硬握手有RTS,CTS。
    怎么自己搞一套?
    你这个协议要在每个字符发送时检查4,5个字符(start,stop)。用Xon和Xoff只要查1个字符。
      

  7.   

    自定义通信协议即可完成你的要求.
    简单说个例子:
    把你所有的信息都制定成帧.主机每接收一帧都要分析帧控制字.如果分析到帧控制字是对应STOP记号就停止.否则信息继续.这种需求以前做上位机,做了不要再做了.
      

  8.   

    设置一个信号灯变量,接收线程接收到“stop”时设置信号灯,发送线程每发送一个字节就检查一下信号灯是否被设置,一旦设置立即停止发送。
    这样肯定可以控制在5个字节,理论上应该是最多多发送1个字节