以前没有注意到串口类有个监听的事件,在不知道之前我新开一个线程,用while(true){//一直读取串口数据 一直读取时加了延时,不加的话会很占电脑资源}
下面是监听串口数据的核心代码
//如果不懂可以问我,我博客有我的联系方式 //SerialCommon类地址http://www.luofenming.com/show.aspx?id=ART2017121500002 SerialCommon serial = new SerialCommon(); /// <summary> /// form1窗体加载事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_Load(object sender, EventArgs e) { //给串口注册 数据接收事件的方法 serial.MySerialPort.DataReceived += new SerialDataReceivedEventHandler(ReceivedData); } //数据接收方法 public void ReceivedData(object sender, SerialDataReceivedEventArgs e) { byte[] data = serial.ReceiveData(1000); //对接收的数据进行处理 //注意这是异步的,跟主窗体不是同一个线程 } /// <summary> /// button1的按钮点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { serial.InitComm("串口名", 38400, 8, StopBits.One, Parity.None); serial.OpenPort(); }