VB MSCOM使用方法

VB MSCOM使用方法,第1张

在窗体中添加名为MyComm的MSComm控件,并设置空间的属性,如下:

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的数组就可以了.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11605544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存