首先定义COM口的连接,
------------------------
先说下控件属性
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
------------------------
COM口连接和打开.
Private Sub Form_Load()
With MSComm1
.CommPort = 3 '定义COM口
.Settings = "9600,n,8,1" '"BBBB,P,D,S"BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停止位数
.InBufferCount = 0 '清除输入缓存
.OutBufferCount = 0 '清除输入缓存
.InputMode = comInputModeText '数据接收方式
.InputLen=1 '定义在接收多少个字节后触发OnComm事件,这个很重要.如果这个数值过大.接收的数据不够的话.是不会触发OnComm事件的.而数据只会存到下面的数据缓存中
.InBufferSize = 20 '数据缓存大小
If .PortOpen = False Then '判断COM口是否打开.如果未打开就打开它.如果出错就弹出错误代码
.PortOpen = True
If Err.Number Then
MsgBox "Cann't connect to COM3,The Error No. is" & Err.Number
Exit Sub
End If
End If
End With
End Sub
-------------------------------
发送数据
Private Sub Command1_Click() '定义一个按钮
If MSComm1.PortOpen = False Then '判断COM口是否打开
MsgBox "串口未打开!"
Exit Sub
End If
MSComm1.Output = "要发送的数据" & vbCr '发送数据.记得要用&VBCR结束.(也就是回车)
END SUB
--------------------------------
接收数据
Private Sub mscomm1_OnComm() 'OnComm事件.当接收到的数据到InputLen的大小后就会触发这个事件
Dim code1 As String '定义一个数组.接收缓存中的数据
With MSComm1
Select Case .CommEvent '事件状态.
Case comEvReceive '当MSCOMM1.COMMEVENT的值为COMEVRECEIVE时(也就是为接收状态时,我不知道是不是可以这样理解).就把缓存中的数据存到CODE1里,
code1 = .Input
Text1.Text = Text1.Text & vbCrLf & code1 '打印数据
End Select
End With
End Sub
--------------------------------
完了...
这是我前两天写的一个小程序测试用的.
如果你觉得这些写得不够清楚的话.顺便给点参考资料:
http://dev.yesky.com/347/2636847.shtml
我就是看这写的.