我使用的是OnComm控件,
但是一次OnComm收到的东西只能8个BYTE,
郁闷!请问设置MSCOMM的什么属性可以改变这种状况?
或者是根本无法改变的?
注:请不要让我改用其他控件或类。
但是一次OnComm收到的东西只能8个BYTE,
郁闷!请问设置MSCOMM的什么属性可以改变这种状况?
或者是根本无法改变的?
注:请不要让我改用其他控件或类。
解决方案 »
- 求子窗體關閉后保存父窗體控件狀態的方法
- 请问下,page setup上的print headings是api的哪个属性控制的
- asp封装dll高难问题!!!谢谢大家,高手请进!
- 如何把.Txt文件内容读入vb程序中
- Imgscan扫描出的图像怎么存入数据库?
- 查询二进制格式存入access数据库
- 多语种支持问题
- vb datagrid 控件
- Microsoft Developer Network 我在哪儿可以下载?
- 怎样用vb编写自动加入日志文件到数据库(可以的话,分全部给你!)
- VB 有关摄像头编程的问题?(100分)
- 对于mshflexgrid,手填与绑定各有何优缺点呢?请各位讲讲,先谢一下。
RThreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生代码为MSCOMM_EV_RECEIVE的OnComm事件。
当发送12个BYTE的数据,
如果RThreshold设置成1,那么竟然产生两次OnComm事件!
两次的InBufferCount分别是8和4;
但是如果RThreshold设置成9,那么只有一次OnComm事件,
InBufferCount是12。
为什么?
我又晕了
不是说“当接收缓冲区内字节个数达到或超过该值后就产生代码为MSCOMM_EV_RECEIVE的OnComm事件。
”吗?谢谢了Const SendSize = 12Private Sub Command1_Click()
Dim toSend As VariantDim a(0 To SendSize - 1) As Byte
For i = 0 To SendSize - 1
a(i) = i
Next
toSend = a
MSComm1.Output = toSend
End SubPrivate Sub Form_Load()MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeBinaryMSComm1.RThreshold = 9
If (MSComm1.PortOpen = True) Then MSComm1.PortOpen = FalseMSComm1.PortOpen = TrueEnd SubPrivate Sub MSComm1_OnComm()If MSComm1.CommEvent <> comEvReceive Then Exit SubList1.AddItem MSComm1.InBufferCountDim a() As Byte
a = MSComm1.InputFor i = 0 To UBound(a)
Text1.Text = Text1.Text + Str(a(i))
NextText1.Text = Text1.Text + vbCrLf
End Sub