nc33693 2023-03-21 09:45 采纳率: 40%
浏览 34
已结题

Visual studio C#上位机数据接收异常


  Thread.Sleep(100);
            int receiveData = serialPort1.BytesToRead;        //读取缓存区字节数目
            textBox15.Text = Convert.ToString(receiveData);//数据长度为40
            DateTime ReadStartTime = DateTime.Now;
            byte[] rdata=new byte[serialPort1.BytesToRead];这里数据长度为0,并且没有数据内容
                //try
                //{ 
                    serialPort1.Read(rdata, 0, rdata.Length);
                //}
               // catch
                //{
               //     MessageBox.Show("读取数据失败,请检查串口号", "失误");
                //}
            int q = 0;
            q = serialPort1.BytesToRead;
                textBox15.Text=textBox15.ToString() + "     "+q;//数据长度为0
                int i=0;
                //for (i = 0; i < serialPort1.BytesToRead; )
                //{
                     foreach (byte member in rdata)
                    {
                    Readbuff[i] = (byte)member;
                    i++;
                    // }
                 }
                Thread.Sleep(10);
                serialPort1.DiscardInBuffer();
                serialPort1.DiscardOutBuffer();
                analysisdata();
                Thread.Sleep(10);

使用的是Visual studio的Framework4.7版,数据判断接收的第一次长度为40,后面数据长度突然变为0,而且没有数据内容。这可能与什么有关?

  • 写回答

3条回答 默认 最新

  • 於黾 2023-03-21 10:10
    关注

    你有多个线程,或多个事件在调用同一个端口的接收

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 已采纳回答 3月22日
  • 创建了问题 3月21日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助