我最终的目标是接收数据并将其显示为图形和单个文本框(或更好的东西!)数据是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));
}
}
}
但是我无法在我的文本框中显示任何数据。
答案 0 :(得分:3)
至少你需要:myPort.DataReceived += myPort_DataReceived;
。在Form1()中执行此操作。