代码“;输入“;在VC+中缓冲串行端口+; 我需要用串口输入代码输入,使用Visual C++ 2010。 sprintf_s(bufff,"X"); //code X oSerial.WriteData(bufff,1); Sleep(500); sprintf_s(bufff,"\n\r"); // code "enter" oSerial.WriteData(bufff,1); Sleep(500); sprintf_s(bufff,"A"); //code A oSerial.WriteData(bufff,1); Sleep(500);

代码“;输入“;在VC+中缓冲串行端口+; 我需要用串口输入代码输入,使用Visual C++ 2010。 sprintf_s(bufff,"X"); //code X oSerial.WriteData(bufff,1); Sleep(500); sprintf_s(bufff,"\n\r"); // code "enter" oSerial.WriteData(bufff,1); Sleep(500); sprintf_s(bufff,"A"); //code A oSerial.WriteData(bufff,1); Sleep(500);,c++,serial-port,C++,Serial Port,我通过以下方式阅读结果: oSerial.ReadData(buf,500);Sleep(500); printf("N: %s \n",buf);Sleep(10000); 结果是: N:XA 所以我认为我输入的“回车”代码是错误的 有人能给出答案吗?\n\r是两个字节,而您只写了一个字节。考虑使用char的向量,在它上面推数据,并且在使用向量大小写时。而且\r\n是更典型的顺序-不确定这是否重要。\n\r是两个字符,而不是一个。正确的顺序是\r\n如Ryan的注释所示!谢谢大家,@

我通过以下方式阅读结果:

 oSerial.ReadData(buf,500);Sleep(500);
 printf("N: %s \n",buf);Sleep(10000);
结果是:

 N:XA
所以我认为我输入的“回车”代码是错误的
有人能给出答案吗?

\n\r是两个字节,而您只写了一个字节。考虑使用char的向量,在它上面推数据,并且在使用向量大小写时。而且\r\n是更典型的顺序-不确定这是否重要。\n\r是两个字符,而不是一个。正确的顺序是\r\n如Ryan的注释所示!谢谢大家,@RyanGuthrie是对的