请教VC里面精确计时的问题:我要在PC机上实现modbus的串口通信编程,根据协议要求是在两个命令串之间要停顿4个字节的时间,我以9600bit/s的波特率计算的话,停顿间隔这么时间的话要3.75ms
(毫秒),可是我记得VC里面的定时器最小的间隔是1ms,但是它实现不了一个ms的间隔,我记得是几个ms的间隔,
请问怎么样能实现这么小的定时计算? 谢谢!

解决方案 »

  1.   

    好像也不行。。难道要用驱动内核函数KeWaitForSingleObject之类的
      

  2.   

    定时器精度应该够,最主要的问题是定时器优先级比较低,精确控制是很难的。你们这个协议挺奇怪的,应该是在两个命令串之间要最少停顿4个字节的时间,而不是一定要4个字节的时间吧?用sleep()好了,用定时器的话,难道你要循环发送同一条命令?
      

  3.   

    建议楼主再详细研究下你的协议实现需求。个人觉得这个需求有些奇怪,你是不是需要考虑再设计( Design with Implementation)
      

  4.   

    直接使用CreateFile、SetupComm、SetCommState、SetCommTimeouts、ReadFile、WriteFile等API进行串口通讯不行吗如果你需要高精度的定时器,可以参看下文
    http://blog.csdn.net/qsycn/archive/2009/11/24/4856752.aspx