
vb编程中的mscomm控件问题?
我想问的是mscomm中的属性中只有output可以发送数据吗发送的数据有没有限制大小!下面的一段代码有什么错误啊发送到串口中不行啊PrivateSubCommand1_...
我想问的是mscomm中的属性中只有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的数组就可以了.
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的数组就可以了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询