C# serialport内datareceived事件接收串口数据,详细步骤。

C# serialport内datareceived事件接收串口数据,详细步骤。,第1张

//Thread.sleep(1000)//处理事件这块可以加上延时确保不定数的数据可以全部收到缓冲后,才去读缓冲内容--单位:毫秒

byte[] data = new byte[serialPort1.BytesToRead]//定义缓冲区,因为串口事件触发时有可能收到不止一个字节

serialPort1.Read(data, 0, data.Length)//读取指定长度

foreach (byte Member in data) //遍历用法

{

string str = Convert.ToString(Member, 16).ToUpper()

textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " ")

}

读取有的string InputData = serialPort1.ReadExisting()

单字节读取(当波特率高时就会丢失数据)

byte DataReceived = (byte)(serialPort1.ReadByte())                   

扩展资料:

衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据往往不会是8位的,标准的值是6、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。

如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

参考资料来源:百度百科-串口通信

可以将Form1里的串口公开,然后在Form2里添加对DataReceived事件的处理

Form1.Designer.cs中将

private System.IO.Ports.SerialPort port改为

publice System.IO.Ports.SerialPort port

然后在Form2里加上

Form1.port.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(port_DataReceived)

最后在

void port_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)

{

在这里进行处理就可以了

}

这个是C#的,VB的你自己转一下


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11635724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存