c# 中serialport学习(中断接收)

经过不停的看别人的代码,自己瞎写,修改,终于搞定了serialport的接收了!恩,用的是中断的方式

 

下面上代码this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.DataReceived); private void DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { string data = serialPort1.ReadExisting(); updateReceiveText(data); } public void updateReceiveText(string msg) { Text2Receive.Invoke(new EventHandler(delegate { Text2Receive.AppendText(msg); Text2Receive.ScrollToCaret(); })); }

 

可以看出这个接收程序一共有鲜明的三段

第一段是设定serialport1的接收中断开(因为是搞单片机的,我就这么理解了...)

并且将中断子程序的名称设置为了DataReceived

 

第二段就是中断子程序了,当SerialDataReceived这个事件发生时,将串口缓冲区的存在的数据送给本函数里面的data,并通过

显示函数updateReceivedText()给他在Textbox里面显示出来;

 

第三段就是如何显示,这一段的Invoke方法我没有太明白,但下面两个函数还是介绍一下啦,就是将送给本函数的msg值给TextBox,

并将其添加到已有的数据后面,所以用的是.AppendText。

                                                      而.ScrollToCaret应该是将当前显示移动到刚刚变化的这一行来

我是这么理解的,哈哈。

你可能感兴趣的:(C#新手入门,c#,textbox,string,object)