从串口读取数据为什么显示不出来
------解决方案--------------------你也单步走走看看,到底问题出在哪儿。
------解决方案--------------------你的串口数据不显示,有很多原因,首先确定是否会进你贴出来的委托函数代码。其次查看你的这个串口有多少个和这个串口有关的委托,然后看看是否是限制条件限制了,或者出现异常等。
------解决方案--------------------我知道你为什么出错了,要先执行串口的DiscardInBuffer()方法,然后在执行串口的Read操作呀。你虽然开始把数据读出来了,但是接着又把数据给抛弃了,你说下面哪会有数据呢?把读取数据那段和清空数据那段掉过来就行了。
------解决方案--------------------给你参考一下,希望对你有所帮助!
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
Thread readThread = new Thread(Read);
readThread.Priority = ThreadPriority.Highest;
readThread.Start();
}
public void Read()
{
try
{
this.Invoke(new EventHandler(Read1));
}
catch { ;}
}
public void Read1(Object sender, EventArgs e)
{
int iLEN=serialPort1.BytesToRead;
byte[] b_read = new byte[iLEN];
serialPort1.Read(b_read, 0, iLEN);
resultByte.AddRange(b_read);
serialPort1.DiscardInBuffer();
if (iLEN > 0)
{
if (iLEN == 1 && b_read[0] == '\xE5')
{
serialPort1.DiscardOutBuffer();
serialPort1.DiscardInBuffer();
serialPort1.Write(PubClass.Byte_con(1), 0, PubClass.Byte_con(1).Length);
resultByte.Clear();