+ -
当前位置:首页 → 问答吧 → mscomm控件的OutBufferSize?

mscomm控件的OutBufferSize?

时间:2011-10-28

来源:互联网

最近使用mccomm控件,有个问题一直不明白,mscomm1.output="1234"是先把字符串发到了发送缓冲区还是直接就发送了,如果是发给了发送缓冲区,那么在缓冲区里他什么时候被发送出去呢?
Private Sub Form_Load()
 MSComm1.CommPort = 1
 MSComm1.OutBufferSize = 1024
 MSComm1.Settings = "9600,N,8,1"
 If MSComm1.PortOpen = False Then
 MSComm1.PortOpen = True
 End If
 
End Sub
Private Sub Timer1_Timer()
1:'MSComm1.OutBufferCount = 0 '清空发送缓冲区
   
  MSComm1.Output = "1234" '...发送数据
End Sub
上面程序的timer控件时间设置的是100ms,如果我将1注释掉那么可以发送成功,如果不注释则不成功,我在想是不是字符串发送到发送缓冲区后,还没来的及发送,就被清空了。
另外我把outbuffersize=1,为什么不报发送缓冲区溢出的错误?

作者: twohorses123   发布时间: 2011-10-28

对于编程者而言,只需要通过output将数据写入发送缓冲区就可以了,至于怎么由硬件发出去,那时Windows驱动的事情了。
看看这本书,关于串口通信的

作者: Veron_04   发布时间: 2011-10-28

9600的波特率,1秒能发送1000字符吧.100ms能发送100个字符吧,不应该发生发送缓冲区溢出吧

作者: spt_petrolor   发布时间: 2011-10-28