如何用VB.NET2005的SerialPort控件进行串口接收数据?

wahahahahahaha 2007-05-14 09:56:41
用串口调试助手进行调试
1.我先用的DataReceived事件不能自动触发
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SerialPort1.Close()

SerialPort1.Open()
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
MsgBox(SerialPort1.ReadLine)
End Sub
串口调试助手发送数据给我,收不到。
2.我加了个Button手动触发,但是还是接收不到,设置断点后就死在里面
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Do
Dim Incoming As String = SerialPort1.ReadLine()
If Incoming Is Nothing Then
Exit Do
Else
TextBox1.Text = Incoming
End If
Loop
MsgBox(Incoming)
Catch ex As Exception
MsgBox(ex)
End Try
End Sub
请教各位帮我解决下吧,谢谢~~
...全文
1661 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
asdfgliu 2010-12-23
  • 打赏
  • 举报
回复
下载来学习学习,谢谢
zdingyun 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 zdingyun 的回复:]
参阅下:http://download.csdn.net/source/1070246的NET工程
[/Quote]
晕,已在14楼回复过了.
兔子-顾问 2010-05-26
  • 打赏
  • 举报
回复
ReadLine
要求独到回车换行,如果你数据一直没回车换行。就不会结束,一直停在ReadLine方法调用处。因为DataReceived是监听线程调用的。所以不会影响你界面的主线程。现象就是DataReceived执行了一次后,就不再执行了。
zdingyun 2010-05-26
  • 打赏
  • 举报
回复
YuanFeng_024 2010-05-26
  • 打赏
  • 举报
回复
这个在我的设备上接收正常
YuanFeng_024 2010-05-26
  • 打赏
  • 举报
回复
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim ReadCount As Integer
ReadCount = Me.SerialPort1.BytesToRead
If ReadCount <> 3 Then
Exit Sub
End If
ReDim InByte(SerialPort1.BytesToRead - 1)
Me.SerialPort1.Read(InByte, 0, SerialPort1.BytesToRead)
Me.Invoke(New Exp(AddressOf CommandExplain))
End Sub
Forrest23 2010-05-12
  • 打赏
  • 举报
回复
用时钟 控件不断的读数据
clx33935 2010-05-11
  • 打赏
  • 举报
回复
谢谢````先下了```看看有没有用````
zdingyun 2009-11-28
  • 打赏
  • 举报
回复
LZ:参考我的资源"VB.NET2008的串口工程"
hbhuo2008 2009-11-28
  • 打赏
  • 举报
回复
学习了,刚好在学串口。
lemonzx2008 2008-06-27
  • 打赏
  • 举报
回复
我是单片机跟PC通信,校验用MARK,进不了DATARECEIVED……并且以后用串口调试助手调试发现多收了15个字节……
openext 2008-06-26
  • 打赏
  • 举报
回复
为什么在应用程序模板上调通的程序,放到ppc下就有问题了呢?
gsmsdn 2008-06-26
  • 打赏
  • 举报
回复
两个串口确定都打开了?
lemonzx2008 2008-06-25
  • 打赏
  • 举报
回复
我的缓冲区里有数据,可是为什么没运行DATARECEIVED事件叱?
zhangjie_it 2007-12-22
  • 打赏
  • 举报
回复
收益了,刚好我也在做读串口数据!
key_rock 2007-05-17
  • 打赏
  • 举报
回复
学习!
jijia521 2007-05-16
  • 打赏
  • 举报
回复
不懂串口.我要做从串口收发数据,肯请各位帮忙
wzuomin 2007-05-15
  • 打赏
  • 举报
回复
好像是你的SerialPort1.ReadLine有问题吧

用ReadByte接收看看
fengkoulangjian 2007-05-15
  • 打赏
  • 举报
回复
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
If Me.ifreceive = False Then
str = SerialPort1.ReadExisting()
Me.demoThread = New Threading.Thread(New Threading.ThreadStart(AddressOf Me.ThreadProcSafe))
Me.demoThread.Start()
End If
End Sub


Private Sub ThreadProcSafe()
Me.SetText(str)
str = ""
End Sub
Private Sub SetText(ByVal [text] As String)
If Me.RichTextBox1.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {[text]})
Else
RichTextBox1.Text = RichTextBox1.Text + [text] + " "
End If
End Sub
fengkoulangjian 2007-05-15
  • 打赏
  • 举报
回复
看看~~
加载更多回复(2)

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧