Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
'触发-串口收到数据
' TextBox1.Invoke(New myDelegate(AddressOf updateTextBox), New Object() {})
End Sub
Public Delegate Sub myDelegate()
Public Sub updateTextBox()
'显示更新串口收到的数据
With TextBox1
.AppendText(SerialPort1.ReadExisting) '& vbCrLf)
.ScrollToCaret()
End With
End Sub
vb.net SerialPort控件接收数据问题,用串口调试助手发数据,只有第一次...
你定义的委托需要带参数才行,DataReceived事件中没有接收数据代码,下面的代码经测试可用 Delegate Sub SetTextCallback(ByVal InputString As String)Private Sub ShowString(ByVal comData As String)txt_Rect.Text += comData '将收到的数据入接收文字框中 txt_Rect.SelectionStart = txt_Rect.Text...
求助大神:通过串口给设备发指令,用串口调试助手发送就有反馈,用自己写...
问题可能在Thread.Sleep(50);在代码sleep的过程中对端的数据和可能已经发完了,等Read执行时已经读不到数据了,所以只能超时。应该把Write和Read放在不同的Thread中执行。串口的数据收发是两个异步的操作,需要分开处理。
vb.net 怎么用事件触发的方式读取串口数据
首先:textbox里没有显示,是因为SerialPort1和TextBox2不是同一线程创建的,需要跨线程操作。需要用到委托,这样才能显示出来。其次:我觉得用串口的接收数据事件更好一些。下面代码供参考:'--- '串口接收数据事件,其实比用定时器更好,'触发事件的条件可以自己在form_load中设置ReceivedBytesThreshold...
C#.net编程程序与单片机连接,怎样实现呢?
下载文件:串口调试_20130926125953.rar|C#.net编程程序与单片机的连接,一般都是采用串口的;C#.net有串口的控件SerialPort,通过对控件的读写,就可以与单片机通讯了;不能通讯的情况是很多的:1、上位机和单片机的串口波特率等设置是不是一致,单片机串口能正常接收吗?2、上位机和单片机的硬件是不是完好...
C# SerialPort串口通讯控制道闸,发送数据有动作,但数据接收不到,Data...
用串口调试工具确保代码无误.设置好串口和比特率点击open,然后编辑内容发送.用下面的方法接收.private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { try { if (serialPort1.IsOpen) { StringBuilder strb = new StringBuilder(); ...
C#SerialPort控件接收数据错误
通讯参数一致吗?波特率,校验等等。read有好多种方式,一定要采用字节方式读取。不妨把读出来的字节都与串口调试助手接到的十六进制转换的字节列出来看看。
C#中serialport控件做的串口发送和接收Form程序不对
ReadLine是阻塞读,如果发出去的数据已经过时,没有读到数据,当然卡死。界面可以按照一些串口软件来编写,例如格西烽火、串口调试助手等都不错。
请教用VB.NET向串口发送16进制的数的方法
我现在正在用VB.NET写一个串口调试的程序,向大虾们请教下怎么通过串口发送16进制的数据。我写的程序需要向DSP发送16进制的数据,如果不是16进制的,DSP会不能正确识别。如果有现成的代码,希望能给我一份,我的邮箱565306139@qq.com;没有代码,但知道原理的... 展开 网上...
用CserialPort类写的串口程序,只能发送一次
现象:每次打开串口只能发送一次,需要关闭再打开或者接收完数据才能发送 成因:在自带串口的电脑、或用优质的USB串口线都没有出现改问题,很有可能跟串口线的质量有关,调试发现在调用玩WriteToPort函数 SetEvent(m_hWriteEvent);后第一次能够正常进入监视线程(CommThread(LPVOID pParam))调用WriteChar(...
用SerialPort发送十六进制数的问题!
我觉得在vb里面应该是一样的.所以不管你发送的是什么,你可以选择的只是编码的类型.就是你是以ASCII编码,还是UTF7,UTF8等等.然后把你要传输的数据以该编码的方式转化为byte[].然后再将byte[]写入到串口的流中. 接收的时候也是一样的,其实接受到的是byte流,可以看做是byte数组.你可以选择的是你用...