什么时候有EV_RXCHAR事件发生,
什么时候有EV_TXEMPTY事件发生,

解决方案 »

  1.   

    当接收的数据中,存在某个字节,其值等于dcb结构中XonChar设置的数值时,发生EV_RXCHAR事件
    EV_TXEMPTY,没用到,从字面上看,应该是发送缓冲区为空时(即由发送阻塞到发送完成时)发生吧
      

  2.   

    TO:wangjinwang(王进)
    你说错了,第一个应该是EV_RXFLAG。
    EV_TXEMPTY,没有说清楚。
      

  3.   

    EV_RXCHAR;有字节到接受缓冲区。
    EV_TXEMPTY:发送缓冲区的最后一个字节发送完。
      

  4.   

    如果接收缓冲区满,还会有EV_RXCHAR吗?,
    如果我有8个bytes, 我一次收,有多少 EV_RXCHAR
    如果我不recv,有多少 EV_RXCHAR.
    如果我一个一个收,有多少 EV_RXCHAR。
    有时出现没有EV_RXCHAR,而对方仍在发数据的情况是什么原因?
    哪位能详细解释一下?
      

  5.   

    你仔细看一下API异步串口编程,你就会明白的,这些事件并不是类似于windows的消息,你需要用WaitCommEvent和GetCommMask循环检查串口事件,其实这些不应该说成是串口的事件,而应该是串口的状态, 比如EV_RXCHAR是说接收串口缓冲区有数据的状态,因此你不能说“如果我有8个bytes, 我一次收,有多少 EV_RXCHAR”状态怎么能说有多少个呢?只能说在接受8个bytes数据这个时间里你用WaitCommEvent和GetCommMask循环检查到的EV_RXCHAR有效个数,这跟EV_RXCHAR状态的有效时间和CPU速度有关......
    如果接收缓冲区满,还会有EV_RXCHAR吗?,
    //////////////////////////////////////
    当然还会有,不过同时还会有另一个状态EV_RX80FULL,接受缓冲区数据超过80%时会一直有这个状态,(同样,你不能说你能接收到多少个EV_RX80FULL事件)如果我不recv,有多少 EV_RXCHAR.如果我一个一个收,有多少 EV_RXCHAR。
    //////////////////////////////
    上面说了,自己想吧有时出现没有EV_RXCHAR,而对方仍在发数据的情况是什么原因?
    ////////////////////////////////
    硬件和驱动上没问题的话,应该不会吧,你遇到过??
      

  6.   

    TO:AthlonxpX86(一滴水) 
    我在qq上已给你留言,说了为什么会有对方发数据,收不到全的原因。
    也说了为什么2000下不能用同步的原因。
    同时纠正你的理解,EV_RXCHAR等不只是状态,更时事件。