VB.NET使用AxMSComm实现串口通信的发送读取问题?

请高手帮我看看,为什么读取串口缓冲区内容为空'打开串口1TryDimaAsShortAxMSComm1.CommPort=1NUMcom=1AxMSComm1.PortO... 请高手帮我看看,为什么读取串口缓冲区内容为空
'打开串口1
Try
Dim a As Short
AxMSComm1.CommPort = 1
NUMcom = 1
AxMSComm1.PortOpen = True
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
‘发送数据
Public Sub okset_sub(ByRef a As Short, ByRef a0 As Short, ByRef a1 As Short) '设定运行细分与步进角
outdata(0) = &HFF
outdata(1) = &HAA
outdata(2) = a
outdata(3) = &H1
outdata(4) = 1
outdata(5) = 0
outdata(6) = a1
outdata(7) = &H0
AxMSComm1.Output = outdata’
End Sub
‘读取串口缓冲区值
Private Sub AxMSComm1_OnComm(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AxMSComm1.OnComm
Dim BytReceived() As Byte '定义字节数组
Dim strBuff As String '定义字符串变量
Select Case AxMSComm1.CommEvent
Case MSCommLib.OnCommConstants.comEvReceive
strBuff = AxMSComm1.Input() '从输入缓冲区读入字符
BytReceived = System.Text.UnicodeEncoding.Unicode.GetBytes(strBuff)
If UBound(BytReceived) > 0 Then
TextBox1.Text = BytReceived(0)
TextBox2.Text = BytReceived(1)
TextBox3.Text = BytReceived(2)
TextBox4.Text = BytReceived(3)
TextBox5.Text = BytReceived(4)
TextBox6.Text = BytReceived(5)
End If
END SUB
展开
 我来答
匿名用户
2014-11-18
展开全部

上面的代码看不出问题,如果初始化串口控件时已经注册了AxMSComm1_OnComm,有数据接收应该能触发,至于为什么没有触发,要看看你的接收方是否已经收到你的发出指令,是否已经有响应数据回发。

建议分开调试,用一个通用的串口助手,如格西烽火串口助手之类的,分别调试你的上位机和下位机。格西烽火串口助手能轻松的定制如你上面的发送数据。

查晓筠0i5
2014-11-18 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4930万
展开全部
需要帮你写吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式