佚名通过本文主要向大家介绍了serialport串口通信,vs2010 serialport,vs serialport,vs2013 serialport,vs2015 serialport等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 用VS做一个单片机的串口调试的form,用serialport类去做
描述:
二、还有就是 private void serial_DataReceived(object sender,System.IO.Ports.SerialDataReceivedEventArgs e)的DataReceived事件不会写,我网上找的但是运行不了。代码如下:
private void serial_DataReceived(object sender,System.IO.Ports.SerialDataReceivedEventArgs e)
{
System.Threading.Thread.Sleep(120);//暂停120毫秒等一条完整的命令进入缓冲区
byte[] c = new byte[50];//用来接收缓冲区收到的数据
try
{
serial.Read(c, 0, 50);
}
catch { }
string oldOrder = "";
for (int i = 0; i < 50; i++)
{
string re = Convert.ToString(c[i], 16).ToUpper();
oldOrder = oldOrder + re;
textBox2.Text=oldOrder;
}
}
三、接受数据的怎么写啊?我看了几天看的挺混乱的,有没有高手直接上代码?万分感激!
解决方案1:
描述:
vsserialport接受数据
一、真心的问一下,用VS做一个串口调试的form,对单片机的,读取数据的时候要向发送地址和命令吗?怎么发送?我用serialport类去做,但是没有提到这个问题。二、还有就是 private void serial_DataReceived(object sender,System.IO.Ports.SerialDataReceivedEventArgs e)的DataReceived事件不会写,我网上找的但是运行不了。代码如下:
private void serial_DataReceived(object sender,System.IO.Ports.SerialDataReceivedEventArgs e)
{
System.Threading.Thread.Sleep(120);//暂停120毫秒等一条完整的命令进入缓冲区
byte[] c = new byte[50];//用来接收缓冲区收到的数据
try
{
serial.Read(c, 0, 50);
}
catch { }
string oldOrder = "";
for (int i = 0; i < 50; i++)
{
string re = Convert.ToString(c[i], 16).ToUpper();
oldOrder = oldOrder + re;
textBox2.Text=oldOrder;
}
}
三、接受数据的怎么写啊?我看了几天看的挺混乱的,有没有高手直接上代码?万分感激!
解决方案1:
看看msdn的例子
mySerialPort->DataReceived += gcnew SerialDataReceivedEventHandler(DataReceivedHandler);
http://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport.datareceived(v=vs.110).aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-2