vb 串口 接收 程序
用VB编写的串口通信程序用示波器测试得到串口发送数据正常用串口精灵测得能正常自发自收硬件连接没问题将串口DB92、3脚短接后出现无法接收发送信号的问题串口配置如下:MSC...
用VB编写的串口通信程序
用示波器测试得到 串口发送数据正常
用串口精灵测得 能正常自发自收 硬件连接没问题
将串口DB9 2、3脚短接后 出现无法接收发送信号的问题
串口配置如下:
MSComm1.CommPort = 1
MSComm1.Settings = " 9600,n,8,1"
MSComm1.InputMode =comInputModeBinary
MSComm1.InputLen = 0
MSComm1.SThreshold = 1
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
在OnComm事件中
Private Sub MSComm1_OnComm()
Dim buffer As Variant
Dim arr() As Byte
Select Case MSComm1.CommEvent
Case comEvReceive
buffer = MSComm1.Input
arr = buffer
temprx(i) = arr
'Text5.Text = Text5.Text + " || " + Hex(temprx(i))
MSComm1.InBufferCount= 0
发送的数据为“105A0303030201E51003”
text5中显示为“|| 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0”
怎样修改让发送与接收一样? 展开
用示波器测试得到 串口发送数据正常
用串口精灵测得 能正常自发自收 硬件连接没问题
将串口DB9 2、3脚短接后 出现无法接收发送信号的问题
串口配置如下:
MSComm1.CommPort = 1
MSComm1.Settings = " 9600,n,8,1"
MSComm1.InputMode =comInputModeBinary
MSComm1.InputLen = 0
MSComm1.SThreshold = 1
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
在OnComm事件中
Private Sub MSComm1_OnComm()
Dim buffer As Variant
Dim arr() As Byte
Select Case MSComm1.CommEvent
Case comEvReceive
buffer = MSComm1.Input
arr = buffer
temprx(i) = arr
'Text5.Text = Text5.Text + " || " + Hex(temprx(i))
MSComm1.InBufferCount= 0
发送的数据为“105A0303030201E51003”
text5中显示为“|| 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0”
怎样修改让发送与接收一样? 展开
展开全部
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = " 9600,n,8,1"
MSComm1.InputMode = comInputModeBinary
MSComm1.InputLen = 0
MSComm1.SThreshold = 1
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
Text5 = ""
End Sub
Private Sub MSComm1_OnComm()
Dim buffer As Variant
Dim arr() As Byte
Dim i As Long
Select Case MSComm1.CommEvent
Case comEvReceive
buffer = MSComm1.Input
arr = buffer
For i = 0 To UBound(arr)
Text5.Text = Text5.Text + "||" + Right("0" & Hex(arr(i)), 2)
Next i
MSComm1.InBufferCount = 0
End Select
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim arr() As Byte, I as Integer
Select Case MSComm1.CommEvent
Case comEvReceive
arr = MSComm1.Input
For I = 0 to UBound(arr)
Text5.Text = Text5.Text + " || " + Hex(arr(I))
Next
没测试,随手打的。你的 buffer 完全无用,temprx 也完全无用。
可以在 arr = MSComm1.Input 下面加个 Stop,监视一下收到的内容。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-06
展开全部
一般,MSComm 关键属性如RThreshold才设置,其他都可以用默认值
楼上 楼下都给了 例子,都不错
楼上 楼下都给了 例子,都不错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询