c#串口接收数据问题
private void buttonVoltage_Click(object sender, EventArgs e)
{
byte addr=0;
string textstr;
textstr = textBoxAddress.Text;
addr = StringToHex(textstr);
byte[] bytes=new byte[3];
bytes[0]=addr;
bytes[1]=0x60;
bytes[2]=TwoNumXor(bytes[0],bytes[1]);
try
{
SP.Write(bytes, 0, 3);
MessageBox.Show("数据发送成功");
}
catch
{
MessageBox.Show("数据发送失败");
}
}
上面是串口发送数据的代码,下面是串口接收数据的代码:
private void SP_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string lStrRecv = "";
int bytesToRead = SP.BytesToRead;
if (SP.IsOpen )
{
byte[] lAryBytes = new byte[bytesToRead];
int lIntLen = SP.Read(lAryBytes, 0, lAryBytes.Length);
if (lIntLen > 0)
{
byte[] lAryData = new byte[lIntLen];
for (int i = 0; i < lIntLen; i++)
{
lAryData[i] = lAryBytes[i];
}
lStrRecv = System.Text.Encoding.Default.GetString(lAryData);
}
this.textBoxVtest.Invoke(
new MethodInvoker(
delegate
{
this.textBoxVtest.AppendText(lStrRecv.ToUpper());
//this.textBoxVtest += "";
this.textBoxVtest.Text+= lStrRecv;
}));
}
}
发送数据后应该就会触发串口接收数据private void SP_DataReceived(object sender, SerialDataReceivedEventArgs e),可是我发送数据后,单步调试都没有跑到private void SP_DataReceived函数里,好像是根本没有触发串口的数据接收。
请高手赐教我怎么才能收到我发的数据呢?谢谢!
{
byte addr=0;
string textstr;
textstr = textBoxAddress.Text;
addr = StringToHex(textstr);
byte[] bytes=new byte[3];
bytes[0]=addr;
bytes[1]=0x60;
bytes[2]=TwoNumXor(bytes[0],bytes[1]);
try
{
SP.Write(bytes, 0, 3);
MessageBox.Show("数据发送成功");
}
catch
{
MessageBox.Show("数据发送失败");
}
}
上面是串口发送数据的代码,下面是串口接收数据的代码:
private void SP_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string lStrRecv = "";
int bytesToRead = SP.BytesToRead;
if (SP.IsOpen )
{
byte[] lAryBytes = new byte[bytesToRead];
int lIntLen = SP.Read(lAryBytes, 0, lAryBytes.Length);
if (lIntLen > 0)
{
byte[] lAryData = new byte[lIntLen];
for (int i = 0; i < lIntLen; i++)
{
lAryData[i] = lAryBytes[i];
}
lStrRecv = System.Text.Encoding.Default.GetString(lAryData);
}
this.textBoxVtest.Invoke(
new MethodInvoker(
delegate
{
this.textBoxVtest.AppendText(lStrRecv.ToUpper());
//this.textBoxVtest += "";
this.textBoxVtest.Text+= lStrRecv;
}));
}
}
发送数据后应该就会触发串口接收数据private void SP_DataReceived(object sender, SerialDataReceivedEventArgs e),可是我发送数据后,单步调试都没有跑到private void SP_DataReceived函数里,好像是根本没有触发串口的数据接收。
请高手赐教我怎么才能收到我发的数据呢?谢谢!
...全文
相关推荐
C# serialport 串口发送与接收数据操作类
对C#的serialport类功能进行了总结,给出了发送,接收数据的完整操作类代码,可直接运用该类进行c#的串口数据操作
C#进行串口应用开发如何处理串口通信时接收数据缓冲区溢出的问题
在C#进行串口通信开发时,接收数据缓冲区溢出是一个常见的问题,尤其是在数据传输速率较高或数据处理速度较慢的情况下。缓冲区溢出会导致数据丢失,从而影响通信的可靠性。
C# 串口接收数据中serialPort.close()死锁的实例
下面小编就为大家分享一篇C# 串口接收数据中serialPort.close()死锁的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
C#串口通信工具
博客对应的源文件代码,网址:http://blog.csdn.net/rehongchen/article/details/7851673 希望能对大家有所帮助。
C#串口通信 连接串口并发送字符
C#打开含有对应字符的串口,并发送字符串


