我用的是Remon Spekreijse编写的多线程控制串口类,每次收到一个字符就触发一个WM_COMM_RXCHAR消息,我在父窗口里处理WM_COMM_RXCHAR这个消息就行!然后循环再读一个字符!
不过,我怎么能让串口一段时间收数据,一段时间不响应WM_COMM_RXCHAR消息,停止收数据。想请教一下思路,用定时器怎么做啊!谢了!

解决方案 »

  1.   

    你这个是需要在程序里自动实现,还是有参数开放出来手动实现?
    提供一个思路:
    可以设置一个全局变量作为开关变量,比方bool s;在WM_COMM_RXCHAR响应函数里,增加判断语句
    if(s){处理函数}
    开关量s的值可以有定时器的处理函数来修改,比方多长时间后s=true,则可接收数据,又过多长时间后s=false,停止接收.定时器的时间也可动态的在定时器响应函数中修改!
      

  2.   

    我认为最好不要相应RXCHAR时间,而去相应RXFLAG,设置接收字符,如果你不知道最后一个字符或者不固定的话,那么当第一次触发RXCHAR之后进入接收线成,这时候不要在相应RXCHAR,而是一个字节一个字节去读取数据,知道读空缓冲区