C# 用serialport控件怎么接收数据详解步骤

 我来答
百度网友22b0977
推荐于2017-11-28 · TA获得超过278个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:166万
展开全部
这个控件的事件里面有个数据接收,每次有数据流入都会触发,你可以在那里面写上写一些接收数据的代码。然后在处理数据,要注意的是,这个接收动作是在别的线程上完成的,所以不能直接在主线程显示。那样是不安全的。需要调用委托才可以。我会的也不多,你参考下我的代码吧。
private void serialPortB_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
byte[] data = new byte[200];
int length = serialPortB.Read(data, 0, 200);
string Read = Encoding.Default.GetString(data, 0, length);
W_Reveive(Read);
}

private void W_Reveive(string text)//这里调用了一个委托,这样就可以在主线程刷新数据了
{
if (this.textBox1.InvokeRequired)
{ D_power d = new D_power(W_Reveive);
this.Invoke(d, new object[] { text });
}
else
{
Scane(text);//这个函数是最后实际处理数据的,此次可以设置为显示数据。
}
}
mdmmdm2
2011-02-26 · TA获得超过414个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:93.5万
展开全部
这个现在比较冷门了,因为现在用串口的很少了。如果你是要用打印机,建议还是装相应的驱动程序,然后用Excel打印,此时用Win32函数设置默认打印机,打印完了再设置回来。或者你可以试验一下打印Excel时指定Printer参数。这样打印格式修改容易,也很方便。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式