串行通信问题

时间:2015-12-24 18:39:33

标签: python c++ arduino serial-port usb

我正在制作一个可以通过USB与Arduino配合使用的项目。我正在使用与我正在使用的库中几乎相同的代码。

代码读取.txt文件,并在无限循环中将此数据发送到Arduino。问题是在第165次循环之后,它真的变慢了。连接需要6秒才能发送6个字符。总是在165。 这是代码:

while(SP->IsConnected()) {
  //see if the usb connection is on.
  fstream file;
  file.open("c:/Python27/beki.txt");
  for(int i=0;i<6;i++) {
    file >> incomingData[i];
    cout << incomingData[i];
  }
  file.close();
  cout <<szam << "\n";
  SP->WriteData(incomingData,dataLength);
  szam++; //counting, thats why i know its always slows at 166.
  Sleep(200);
}

我发现它不是文件,它不会占用太多内存,335k。并且它发送了良好的数据,因此直到第165个循环,它才能完美地完成工作。该文件由另一个无限循环写入,在此第165个循环之后,代码发送旧数据的字符。

它在Python中也是如此。我不知道是否有限制或其他什么。请帮忙。

我正在使用this library

1 个答案:

答案 0 :(得分:0)

您需要在while循环之外引入以下内容:

fstream file;
file.open("c:/Python27/beki.txt");

file.close();

就像现在一样,每次打开文件后,你可能会发送相同的字节。