串行端口读入TextBox

时间:2015-05-26 00:08:29

标签: c#

我最终的目标是接收数据并将其显示为图形和单个文本框(或更好的东西!)数据是2 x温度读数和湿度读数,例如发送的数据将是&#34 ; 222160"等。

然而,在我解决之前,我只是在文本框中显示任何数据时遇到问题。这是我正在使用的代码; (由UI的文本框组成)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;

namespace WFARxSimple
{
    public partial class Form1 : Form
    {
        string rxString;
        public Form1()
        {
            InitializeComponent();
            myport = new SerialPort();
            myport.PortName = "COM5";
            myport.BaudRate = 9600;
            myport.Parity = Parity.None;
            myport.DataBits = 8;
            myport.StopBits = StopBits.One;
            myport.Open();
        }

        private SerialPort myport;
        private void DisplayText(object sender, EventArgs e)
        {
            showRx.AppendText(rxString);
        }

        private void myPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            rxString = myport.ReadExisting();
            this.Invoke(new EventHandler(DisplayText));
        }
    }
}

但是我无法在我的文本框中显示任何数据。

1 个答案:

答案 0 :(得分:3)

至少你需要:myPort.DataReceived += myPort_DataReceived;。在Form1()中执行此操作。