关于vb串口编程的问题,请高手指教! 20
我这边需要一个上位机程序,通过电脑的串口发送信息,先发送设置信息,以后发送的都是数据信息。界面设计是有一文本框和按钮,通过填入的16进制数值进行发送。我查了好多资料,编了...
我这边需要一个上位机程序,通过电脑的串口发送信息,先发送设置信息,以后发送的都是数据信息。
界面设计是有一文本框和按钮,通过填入的16进制数值进行发送。我查了好多资料,编了下面这一段程序,也不知道发出去没,但是返回来的都是乱码,跟我用串口精灵调试的不一样,谁能告诉我怎么回事呀!
Dim outbyte() As Byte
Dim inbyte() As Byte
Private Sub Command1_Click()
buf = Trim(TxtSend.Text)
outbyte = StrConv(buf, vbFromUnicode)
MSC.Output = outbyte
End Sub
Private Sub Command2_Click()
MSC.PortOpen = False
End
End Sub
Private Sub Form_Load()
With MSC
If .PortOpen = True Then
.PortOpen = False
End If
.CommPort = 1 '使用COM1
.Settings = " 38400,E,8,1 " '设置通信口参数
.InBufferSize = 1024 '设置MSComm1接收缓冲区为1024字节
.OutBufferSize = 1024 '设置MSComm1发送缓冲区为1024字节
.InputMode = comInputModeBinary '设置接收数据模式为二进制形式
'-----------------------------------------------------------------------------------------------------
.InputLen = 0 '设置Input 一次从接收缓冲读取全部字节数
.SThreshold = 0 '设置发送完所有产生OnComm事件
.InBufferCount = 0 '清除接收缓冲区
.OutBufferCount = 0 '清除发送缓冲区
.RThreshold = 1 '设置接收一个字节产生OnComm事件
' .RTSEnable = True
'-----------------------------------------------------------------------------------------------------
If Not .PortOpen Then '判断通信口是否打开
On Error Resume Next
.PortOpen = True '打开通信口
MsgBox "串口已打开"
If Err Then '错误处理
MsgBox "串口被占用或此串口不存在!通信无效!", 16, "错误提示"
Exit Sub
End If
End If
End With
End Sub
Private Sub MSC_OnComm()
Select Case MSC.CommEvent
Case comEventBreak
Case comEventCDTO
Case comEventCTSTO
Case comEventDSRTO
Case comEventFrame
Case comEventOverrun
Case comEventRxOver
Case comEventRxParity
Case comEventTxFull
Case comEventDCB
Case comEvCD
Case comEvCTS
Case comEvDSR
Case comEvRing
Case comEvEOF
Case comEvReceive
buf = ""
inbyte = MSC.Input
For i = LBound(inbyte) To UBound(inbyte)
buf = buf + Str(inbyte(i)) + Chr(32)
Next i
TxtReceive.Text = buf
Case comEvSend
End Select
End Sub 展开
界面设计是有一文本框和按钮,通过填入的16进制数值进行发送。我查了好多资料,编了下面这一段程序,也不知道发出去没,但是返回来的都是乱码,跟我用串口精灵调试的不一样,谁能告诉我怎么回事呀!
Dim outbyte() As Byte
Dim inbyte() As Byte
Private Sub Command1_Click()
buf = Trim(TxtSend.Text)
outbyte = StrConv(buf, vbFromUnicode)
MSC.Output = outbyte
End Sub
Private Sub Command2_Click()
MSC.PortOpen = False
End
End Sub
Private Sub Form_Load()
With MSC
If .PortOpen = True Then
.PortOpen = False
End If
.CommPort = 1 '使用COM1
.Settings = " 38400,E,8,1 " '设置通信口参数
.InBufferSize = 1024 '设置MSComm1接收缓冲区为1024字节
.OutBufferSize = 1024 '设置MSComm1发送缓冲区为1024字节
.InputMode = comInputModeBinary '设置接收数据模式为二进制形式
'-----------------------------------------------------------------------------------------------------
.InputLen = 0 '设置Input 一次从接收缓冲读取全部字节数
.SThreshold = 0 '设置发送完所有产生OnComm事件
.InBufferCount = 0 '清除接收缓冲区
.OutBufferCount = 0 '清除发送缓冲区
.RThreshold = 1 '设置接收一个字节产生OnComm事件
' .RTSEnable = True
'-----------------------------------------------------------------------------------------------------
If Not .PortOpen Then '判断通信口是否打开
On Error Resume Next
.PortOpen = True '打开通信口
MsgBox "串口已打开"
If Err Then '错误处理
MsgBox "串口被占用或此串口不存在!通信无效!", 16, "错误提示"
Exit Sub
End If
End If
End With
End Sub
Private Sub MSC_OnComm()
Select Case MSC.CommEvent
Case comEventBreak
Case comEventCDTO
Case comEventCTSTO
Case comEventDSRTO
Case comEventFrame
Case comEventOverrun
Case comEventRxOver
Case comEventRxParity
Case comEventTxFull
Case comEventDCB
Case comEvCD
Case comEvCTS
Case comEvDSR
Case comEvRing
Case comEvEOF
Case comEvReceive
buf = ""
inbyte = MSC.Input
For i = LBound(inbyte) To UBound(inbyte)
buf = buf + Str(inbyte(i)) + Chr(32)
Next i
TxtReceive.Text = buf
Case comEvSend
End Select
End Sub 展开
3个回答
展开全部
太阳雨多年积攒极其珍贵的原创VB串口通信技术资料V4.0 (600M)
VB串口通信编程源码200个,多种行业多种应用...
VB串口通信技术文章160篇,详尽地对VB串口通信的诠释...
VB串口通信电子书籍16部,工业通信名家著作,经典细致...
VB串口通信控件16个,简化串口通信编码,提高开发效率...
VB串口视频教程44个,一套完整视频教程,讲解直观,更快掌握...
超级赠品一:OSI网络模型教程48M
超级赠品二:串口硬件层知识大全资料包24M
超级赠品三:串口调试工具80个,应用于各种串口调试与校验计算...
超级赠品四:程序员发展类文章和书籍12部,帮助您的成长,健康和发展....
超级赠品五:更送虚拟串口调试软件, 帮助你在没有串口的电脑上也能正常调试...
你在淘宝搜索“太阳雨VB串口资料”就可以找到,希望可以帮助到你。
同时,还有"太阳雨VC串口资料"和"太阳雨DELPHI"串口资料...
VB串口通信编程源码200个,多种行业多种应用...
VB串口通信技术文章160篇,详尽地对VB串口通信的诠释...
VB串口通信电子书籍16部,工业通信名家著作,经典细致...
VB串口通信控件16个,简化串口通信编码,提高开发效率...
VB串口视频教程44个,一套完整视频教程,讲解直观,更快掌握...
超级赠品一:OSI网络模型教程48M
超级赠品二:串口硬件层知识大全资料包24M
超级赠品三:串口调试工具80个,应用于各种串口调试与校验计算...
超级赠品四:程序员发展类文章和书籍12部,帮助您的成长,健康和发展....
超级赠品五:更送虚拟串口调试软件, 帮助你在没有串口的电脑上也能正常调试...
你在淘宝搜索“太阳雨VB串口资料”就可以找到,希望可以帮助到你。
同时,还有"太阳雨VC串口资料"和"太阳雨DELPHI"串口资料...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim outbyte(2) As Byte
outbyte(0)=&H20
outbyte(1)=&H21
outbyte(2)=&H22
MSC.Output = outbyte
这样就能把这三个字节发送出去!
outbyte(0)=&H20
outbyte(1)=&H21
outbyte(2)=&H22
MSC.Output = outbyte
这样就能把这三个字节发送出去!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询