【发布时间】:2016-01-29 08:43:07
【问题描述】:
private SerialPort _serialPort = null;
public WeightDisplay()
{
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false;
_serialPort = new SerialPort("COM1", 9600, Parity.None, 8);
_serialPort.StopBits = StopBits.One;
_serialPort.DataReceived += new SerialDataReceivedEventHandler(_serialPort_DataReceived);
_serialPort.Open();
}
void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
txtWeight.Text = _serialPort.ReadExisting();
}
此代码连续从连接到串行端口的称重机获取值并将其显示在文本框中。代码工作正常,但如果权重发生变化,我想更改文本框的值,即。如果ReadExisting() 返回的值与之前的值不同。(我不希望文本框无缘无故地波动)
当我调试时,我得到这个值:
"+ 0.000 S\r+ 0.000 S\r+ 0.000 S\r+ 0.000 S\r+ 0.000 S\r+ 0.000 S\r"
有时甚至是大字符串
我的文本框显示"+ 0.000"(不断闪烁)
【问题讨论】:
标签: c# serial-port