单片机没做过.
CreateFile异步说的是...例如你读写的时候要花费一段时间..
程序,不必等待读写完成,然后在继续往下执行..
可以在ReadFile..WriteFile..以后继续执行下面的程序..等R,W完成的时候,它会通知你..
你在对它进行处理..
其实这里的线程是系统的线程...你自己的程序里.有一个线程就可以..

解决方案 »

  1.   


    我建议你这么做:
    串行口硬件的同步跟这里说的同步不是一个意思。刚开始,最好是用同步的方式,即不要设置 FILE_FLAG_OVERLAPPED ,这里改用 NULL同步方式的特点就是:ReadFile(...);这时,程序会停在这里,等待数据上来;当在指定的时间到了后数据还没有上来,函数才返回;这时可以判断它其中的一个参数,可以知道没有收到指定的字节数。具体的,看下面这篇文章,讲的很清楚:http://vckbase.com/document/viewdoc/?id=1114
    同步使用没问题后,再研究异步,我就是这么学过来的。
      

  2.   

    首先谢谢楼上的解答!!
    如果采用同步方法读串口,我是不是只能定时查询串口,然后Readfile()
    我想用事件触发的方式读取串口数据,这里涉及一个WaitCommEvent()函数,这个函数说是要阻塞线程
    这样是不是只能采用异步方式,并且创建一个线程用于监视串口事件
    也就是说我想用同步方式并且采用事件触发读取串口是不可能的?
    sorry刚接触上位机这块,对于很多概念还不理解