串口通讯的问题~~
要根据串口传回来的数据决定程序流程:
具体如下:首先,A发送请求连接信息到B,连接成功A应该收到确认标志,否则程序退出;确认连接成功后,A发送要传输的数据,有开始和结束标志的,B收到结束标志后发回结束信息,A收到后继续执行后续程序,否则退出!!
问题:OnComm事件发生时,系统程序是否会挂起其他操作,直道接收完毕??如果不是这样该如何解决上述问题!请大家指教!

解决方案 »

  1.   

    串口的问题好象很热门哪!理论上系统程序绝对不会挂起其他操作, 因为WINDOWS是多任务系统
      

  2.   

    串口的问题好象很热门哪!理论上系统程序绝对不会挂起其他操作, 因为WINDOWS是多任务系统
      

  3.   

    1.如果你是用MSCOMM32.OCX,则可以设置"接收阀值",也就是接收多少个字节才会响应OnComm事件.
    2.如果你是用API的话,则可以在ReadFile函数参数中指明每次在一定时间内读取的字节数,只要有一字节接收到,执行这个函数将会在Timeout(这个要用另一个函数设置)或者字节数够的话才会返回.
      

  4.   

    用API操作串口可当作文件来读写,首先调用CreateFile(),其中第6个参数中可设置同步或异步,标志为FILE_FLAG_OVERLAPPED,但一般都设置为0,即同步方式
    其它详细的操作请在论坛搜一下,有这方面的例程.
      

  5.   

    首先,A发送请求连接信息到B,连接成功A应该收到确认标志,否则程序退出;确认连接成功后,A发送要传输的数据,有开始和结束标志的,B收到结束标志后发回结束信息,A收到后继续执行后续程序,否则退出!!
    这个功能该如何实现好啊~~
      

  6.   

    用API,同步方式,等B响应,超时退出
    用MSCOMM,开定时器,定时器时间到,OnComm无接受事件,退出,有接收事件,正确响应,KillTimer()
      

  7.   

    虫哥能不能再说明白点阿~
    比如说我设置一个标志flag,初始为0,如果OnComm事件发生并且接收到正确信息,就把他置1,否则他仍然为0!然后在另外一个事件处理函数OnFuction()中,先发送一个连接请求,然后该如何等待响应以及判断超时以继续下一步操作???
    我是菜鸟,请指点~~