这里是我的问题。我用thise一段代码串发送到我的Arduino用的SerialPort:c#和arduino之间的serialdata通信
Arduino.Open();
Arduino.WriteLine("1.5,3.7,2");
之后,我和我的Arduino收到这样的:
char buffer[12];
String inc;
void setup()
{
Serial.begin(115200);
}
void loop()
{
if (Serial.available() >= 11)
{
for (int i=0; i<11 ; i++)
{
buffer[i] = Serial.read();
inc += buffer[i];
}
memset(buffer, 0, sizeof(buffer));
Serial.println(inc);
inc = "";
}
}
如果我使用串口监视器Arduino的程序按预期运行,读取所有字符并将它们打印为一个字符串。但是,如果我尝试从我的C#程序中读取字符串公司我得到一个格式错误,看起来像这样“.7,2 ???? 1.5”。
我从与所述命令Arduino的读取serialdata:
GlobaleVariablen.Input = Arduino.ReadLine();
波特率是相同的,奇偶性被设置为无停止位和对默认为好。 我希望你能帮助我,我为此疯狂,我找不到我的错误,或者为什么格式不对。
你的Arduino代码只是外的同步与数据传输。您发送10个字节,而不是11个。并且您还发送换行符,但通过使用println()添加两个额外的字节。正确的Arduino代码只是将字符添加到* buffer *中,直到获得换行符('\ n')。 – 2015-02-23 15:57:30
对不起,但这不是问题在这里。我解决了你指出的问题,但是问号仍然是四个?在字符串前面。难道只有打开串口后的第一个字符串有某种“标签”?不知道如何解决这个问题。 – DerBenutzer 2015-02-23 17:44:03