私は、このリンクでSerialClass.hとSerial.cppを使用します。http://playground.arduino.cc/Interfacing/CPPWindowsアルドゥイーノとC++シリアル通信同期
私のmain.cppに:
#include <stdio.h>
#include <tchar.h>
#include "SerialClass.h" // Library described above
#include <string>
// application reads from the specified serial port and reports the collected data
int main(int argc, _TCHAR* argv[])
{
printf("Welcome to the serial test app!\n\n");
Serial* SP = new Serial("COM4"); // adjust as needed
if (SP->IsConnected())
printf("We're connected\n");
char incomingData[256] = "hello";
int dataLength = 255;
int readResult = 0;
while(SP->IsConnected())
{
readResult = SP->ReadData(incomingData,dataLength);
incomingData[readResult] = 0;
if(readResult != 0){
printf("%s",incomingData);
printf("---> %d\n",readResult);
}
Sleep(500);
}
return 0;
}
私のArduinoのコード:
int mySize = 5;
char incomingData[256] = "hello";
void setup(){
Serial.begin(9600); // Seri haberleşmeyi kullanacağımızı bildirdik
pinMode(LedPin, OUTPUT); //LedPini çıkış olarak tanımlıyoruz.
}
void loop(){
incomingData[mySize] = 't';
++mySize;
Serial.write(incomingData);
delay(500);
}
Arduinoは文字配列を書き込み、C++はそれを読み取ります。問題は、cppがデータを失っていることがあります。私の出力:
は私の最初の質問は、私はこのために何ができるのですか? ArduinoとC++の同期方法C++はarduinoが書き終えるまで待つべきです。私はロックシステムなどを使うべきだと思う。
その他の質問私は自分のArduinoとC++プログラムが常にコミュニケーションしたいと思っています。私はそれをしたい: "Arduino書き込み"後に "C + +の書き込み"の後に "C + +の書き込み"は、 "Arduino"の後に再び "Arduino"を書き込みます。だから、私は睡眠と遅延を使用しません。私の2番目の質問は、この同期のためにどうすればいいのですか?答えは最初の質問の答えと同じだと思います。