我使用SerialClass.h和Serial.cpp在此鏈接:http://playground.arduino.cc/Interfacing/CPPWindowsArduino的和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寫道」在「Arduino讀取」之後的「C++寫入」之後的「C++讀取」之後,「Arduino寫入」之後。所以,我不使用睡眠和延遲。我的第二個問題是我該如何做這個同步?我認爲答案與第一個問題的答案相同。