C#串口读取较大的数据的问题 5C

向下位机发送一条指令,会返回一串数据,数据比较大,可能有几十K,不确定具体大小,上位机怎么接受到完整的数据并保存到本地,求助。

4个回答

if (serialPort1.IsOpen)////****判断串口是否打开****////
{
serialPort1.WriteLine(ML);////****串口写入texbox输入的指令*****/////
richTextBox1.AppendText(receiveString);/////*****串口接收事件****////
Application.DoEvents();
for (int i = 0; i < 32000; i += 100)
{
System.Threading.Thread.Sleep(100);
Application.DoEvents();
}
richTextBox1.ScrollToCaret();////*****richbox,滚动****/////
string filename;
if (SN == "")
{
filename = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();

            }
            else
            {
                filename = textBox2.Text.Trim();
            }
            FileStream fs = new FileStream(@"log\" + filename + ".txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
            StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding("GB2312"));//通过指定字符编码方式可以实现对汉字的支持,否则在用记事本打开查看会出现乱码
            sw.Flush();
            sw.BaseStream.Seek(0, SeekOrigin.Begin);
            sw.Write(receiveString);//写入textBox2的内容
            sw.Flush();
            sw.Close();
            fs.Close();
        } 
xietiao0306
_bbbbbb 我想知道的是接受数据的具体过程
大约 3 年之前 回复

无限读缓冲区直到读完为止,然后拼接。我以前只这么干过。

你们的通信协议呢,不管串口通信还是套接字通信你们最少得设计一个简单的协议吧,比如从哪位字节后开始是数据区,数据区到哪个字节结束,检验位占多少个字节等等

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐