# Re: RS232接收讯息???

Posted by 安宝 on September 28, 1998 at 13:55:18:

In Reply to: RS232接收讯息??? posted by BON on September 25, 1998 at 13:19:35:

: 请问各位前辈,,vb6要如何接收RS232传送来的MESSAGE??
:
: 这个问题有点烦哦 , 程序给他有点复杂 ; 先问一下 , 你的 RS232 线是不是 2-3 对调的 ?
:
: 1. Main From 里宣告以下:
MScomm.PortOpen = True ' 启动 COM PORT
comWeight.InBufferCount = 0 ' 输入缓冲设定
comWeight.OutBufferCount = 0 ' 输出缓冲设定
comWeight.RThreshold = 1 ' 收讯状态启动
comWeight.SThreshold = 1 ' 发讯状态启动
:
: 2. 在 MSComm_OnComm() 内处理
Select Case MSComm.CommEvent
Case comEvReceive
If (MSComm.InBufferCount > 0) Then
MSComm.RThreshold = 0 ' 收入处理
MSComm.PortOpen = False
Message = MSComm.Input
' Process Message .....
MSComm.Input = "" ' 重新启动收入
MSComm.RThreshold = 1
MSComm.PortOpen = True
End If
Case comEvSend ' 这一段还要试一试
If (MSCommt.OutBufferCount > 0) Then
MSComm.Output = Message ' 送出处理
MSComm.SThreshold = 1
MSComm.PortOpen = True
' Sleep 1 second ....
MSComm.Output = "" ' 关闭送出程序
MSComm.SThreshold = 0
MSComm.PortOpen = False
End If
Case comEventRxOver
' InBufferCount 不清空或太小 , 小心接收溢位
Case comEventTxFull
' OutBufferCount 不清空或太小 , 小心传送溢位
End Select
:
: 3. 细节部份请自行参考 "VB线上说明" 内的 "ActiveX的控制项" 说明 , 基本上建议使用 Timer 定时控制或许比较方便
:
: 4. 以上建议纯为个人尝试经验 , 或有遗漏未定 , 可试试

Follow Ups: