我有一个小型嵌入式系统,我用调试例程安装了它,通过蓝牙连接将完全相同的字节一遍又一遍地发送到 PC。
有问题的速度是 921600 bps
在成功接收到大约四千字节(给或取几百)后,我的应用程序不再从 Win7 中看到
我完全有信心在流从我的应用程序中消失后继续发送字节(即超过四千)
我非常怀疑 Windows 出于某种原因没有提供蓝牙接收的内容。
我可以满怀信心地说...
- 该应用程序确实正确显示了前四千个奇怪的字节
 - 之后该应用程序不显示任何内容
 - 外部盒子继续发送字节
 
我对 Win'7 的怀疑越来越深,因为
- 停止应用程序后,我的外部发射盒继续。
 - 两分钟后,我停止了外接发射盒
 - 那一刻,PC和小盒子都没有互动
 - 两个系统都停止后,(几分钟)我重新启动了 PC 应用程序
 - 没有传输字节,应用程序收到了 941 个字节,我真的不知道是从哪里来的
 - 这些字节来自上一个会话(我一遍又一遍地发送单个字节 0x37,这就是我在数据流中看到的)
 
然后我们再次启动小盒子生成数据,并看到相同的行为:看到 4435 个字节,之后我们没有从 UART 获得任何字节,尽管在 921600 bps 有两分钟的字节泛滥。
这是接收线程
 void RecieveThread()
  {
      int n;
      while (continueRecieving)
      {
          n = connectorPort.BytesToRead;
          byte[] bits = new byte[n];
          if (n > 0)
          {
              connectorPort.Read(bits, 0, n);
          }
          Write(bits);
      }
  }
以防万一有人觉得它很重要,这里是 Write(bits) 例程
 public void Write(byte[] b)
 {
     if (writting)
     {
         for (int i = 0; i < b.Length; i++)
         {
             storage[sPlace++] = b[i];
             pass += b[i].ToString("X2") + " ";
             if (sPlace % numericUpDown1.Value == 0)
             {
                 pass += "\r\n";
             }
         }
     }
 }
以前有没有人在装有 C# 应用程序的 Win7 机器上经历过蓝牙字节消失?
任何人都可以看到可能导致这种情况的明显(或晦涩)错误吗?