采用SPCOMM控件与串口通信,要求两个定时控件每隔500MS/1000ms左右去查询相应的单片机值 ,测试发现由于指令频率过频,导致读取串口返回时有两条指令的内容有时候重复了,同时如果定时器工作的时候,要做其它的指令有时不行,请问大家有没有好的办法解决啊

解决方案 »

  1.   

    统一由一个线程来向串口发送数据,无论是定时器的发送请求还是正常指令的发送请求都先发送到线程的发送缓冲区(先入先出),由线程统一发送。缓冲区无数据时,线程挂起;有数据时,唤醒线程。读取统一由另一个线程来完成,区分不同的返回数据来做不同的处理。
      

  2.   

    能不能详细一点有没有这方面的实例
      

  3.   


    统一由一个线程来向串口发送数据,无论是定时器的发送请求还是正常指令的发送请求都先发送到线程的发送缓冲区(先入先出),由线程统一发送。缓冲区无数据时,线程挂起;有数据时,唤醒线程。读取统一由另一个线程来完成,区分不同的返回数据来做不同的处理。