【发布时间】:2016-11-20 20:21:32
【问题描述】:
我在此链接中使用 SerialClass.h 和 Serial.cpp:http://playground.arduino.cc/Interfacing/CPPWindows
我的 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 writes”在“C++ reads”之后“C++ writes”之后“Arduino reads”之后再次“Arduino writes”。所以,我不使用睡眠和延迟。我的第二个问题是我该怎么做这个同步?我认为答案与第一个问题的答案相同。
【问题讨论】:
标签: c++ arduino serial-communication data-synchronization