对你的设备不是很明白,但你这里我注意到有两个地方。
if (sp.IsOpen == false)
{
sp.Open();
}为什么会用到两次?还有就是你在发送接收完数据有没有对数据清空?
if (sp.IsOpen == false)
{
sp.Open();
}为什么会用到两次?还有就是你在发送接收完数据有没有对数据清空?
解决方案 »
- [winform]关于控件的Paint事件
- 在线等,急用,顶的都有分,数据库连接问题
- C#写视频转发,截取摄像头,转发。
- CMPP2.0 CMPP_CNNECT认证错
- 请教:在动态创建的控件中,如何使用viewstat的值?
- http://59.151.28.224/kjtop/vote/default.aspx 问题不多,分多多
- GridView里面如何排序
- 怎么在网格里面的数据只更新其中某一行,其他行不要变动?
- c#中如何得到一个字符串中首字母的字符代码,类似VB中的Asc(string)函数
- 各位大牛帮忙给看看 先谢谢了
- 求助.关于异步Socket回调函数问题
- 请问一下如何表示DATAGRID 中被选中的单元格?
byte[] wData =new byte[sp.readbuffersize];
System.IO.Ports.SerialDataReceivedEventArgs e)
{
sp.Read(wData, 0, sp.readbuffersize);
sysStatus = "receOk";
}
}
}这样读,有什么问题吗?我觉得这样读,应该就干净了,上边的读数据有什么问题吗?private void sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
sp.Read(wData, 0, sp.ReadBufferSize);
sp.DiscardInBuffer();
sp.Read(wData2, 0, sp.ReadBufferSize);
sp.Read(wData3, 0, sp.ReadBufferSize);
string tt = ":";
string bb = ":";
string cc = ":";
foreach (byte aa in wData)
{
tt += aa.ToString();
}
foreach (byte aa in wData2)
{
bb += aa.ToString();
}
foreach (byte aa in wData3)
{
cc += aa.ToString();
}
tb1.Text += tt;
label2.Text += bb;
label3.Text += cc;
sysStatus = "receOk";
}
我连续读三次都有数据,真是怪死了,我搞不明白了,太郁闷啦!