Private Sub Form_Load()
Dim i As Integer
With MSComm1
If .CommPort <>2 Then .CommPort = 2 '设置Com2为通信端口
.Settings = "9600,N,8,1" '设置通信端口参数 9600赫兹、无校验、8个数据位、1个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。
'含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit)
.InBufferSize = 1024 '设置缓冲区接收数据为1024字节
.OutBufferSize = 512
.InputMode = comInputModeText '设置数据接收模式为16进制形式
.InputLen = 1 '设置Input一次从接收缓冲读取字节数为1
.RThreshold = 1 '设置接收一个字节就产生OnComm事件
.OutBufferCount = 0 '清空发送缓冲区
.InBufferCount = 0 '滑空接收缓冲区
If Not .PortOpen Then
.PortOpen = True'打开通信端口
End If
End With
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
我想问的是m *** 中的属性中只有output可以发送数据吗
发送的数据有没有限制大小!
下面的一段代码有什么错误啊
发送到串口中不行啊
Private Sub Command1_Click()
Dim b As String
b = Chr(&H24) &Chr(&HFF) &Chr(&H16) &Chr(&HEA) &Chr(&H80) &Chr(&H0) &Chr(&H12) &Chr(&H34) &Chr(&HC5) &Chr(&H23)
MSComm1.PortOpen = True
MSComm1.Output = b
MSComm1.PortOpen = False
End Sub
解析:
因为你定义的b是一个String的变量,Chr(&HEA) Chr(&H80) Chr(&HC5)等一些大于等于128字符在转换为char类型时会出现错误.
你这样修改看看行不行
Private Sub Command1_Click()
Dim b(9) As Byte
b(0)=&H24
b(1)=&HFF
b(2)=&H16
b(3)=&HEA
b(4)=&H80
b(5)=&H0
b(6)=&H12
b(7)=&H34
b(8)=&HC5
b(9)=&H23
MSComm1.PortOpen = True
MSComm1.Output = b() '这里一定是b(), 这样才能传输整个数组,这里应该是传址
MSComm1.PortOpen = False
End Sub
我现在在外地出差,没有测试是不是成功.
原来使用的都是一个串口通讯的.dll,是用VC写的,用VB调用的时候,如果参数是String型的时候,Ascii码大于128时就会出现错误,后来我调用Byte的数组就可以了.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)