C# 与arduino的串行通信

C# 与arduino的串行通信,c#,c++,serial-port,arduino,C#,C++,Serial Port,Arduino,为了简单明了,我删除了前面的问题 我编写了一些C代码,通过串行方式将字节数组发送到Arduino纳米板(通过USB到串行转换器) 为什么我不会收到与我发送的值相同的十六进制值(在Arduino串行监视器中) (数值应为数字0-9的十六进制) C#代码: Arduino代码: void loop() { while (Serial.available()) { delay(250); // get the new byte: byte thisByte = Serial.read(); // a

为了简单明了,我删除了前面的问题

我编写了一些C代码,通过串行方式将字节数组发送到Arduino纳米板(通过USB到串行转换器)

为什么我不会收到与我发送的值相同的十六进制值(在Arduino串行监视器中)

(数值应为数字0-9的十六进制)

C#代码:

Arduino代码:

void loop()
{
while (Serial.available()) {
delay(250);
// get the new byte:
byte thisByte = Serial.read(); 
// add it to the inputString:
//inputString += char(intChar);

Serial.print(thisByte,HEX); 
Serial.print(" | ");
}
}
Arduino串行监视器中接收到的值:


D6 | B6 | 96 | 76 | 56 | 36 | 16 | F6 | 8D | 0 |

在这种噪音中很难看到信号。RS-422使用差分信号,与Arduino非常不兼容。至少有一点提示是位颠倒了,比如0变成了255,这表明你已经把电线颠倒了。波特率看起来是2的一个因素。只是提示,不足以解释所有的值。首先关注正确的电气连接,请访问electronics.stackexchange.com谢谢@HansPassant,我可以理解RS-422可能会带来问题,但我也发现通过USB到串行转换器从我的PC发送一些东西到Arduino,我在Arduino没有收到我发送的相同数据——这让我相信我遗漏了一些基本的东西。我也不明白你所说的“波特率是2的一个因素”是什么意思,我会做一些更基本的事情,从PC到Arduino进行通信,并按照你的建议将结果发布在这里和electronics.stackexchange.com上-谢谢。@HansPassant将问题改为从PC到Arduino的非常基本的示例…好的,我现在明白了,只是极性颠倒了。这反过来又会导致它错误地识别起始位,从而得到一个字节的一部分和下一个字节的一部分。“交换电线。”汉帕桑,再次感谢你的回复。如果我交换TX和RX,我就没有通信了?它目前的接线方式如下:PC的TX连接到Arduino TX PC的RX连接到Arduino RX PC GND连接到Arduino GND我也知道TX应该连接到RX,RX连接到TX,但我无法通过这种方式获得任何通信。。。
void loop()
{
while (Serial.available()) {
delay(250);
// get the new byte:
byte thisByte = Serial.read(); 
// add it to the inputString:
//inputString += char(intChar);

Serial.print(thisByte,HEX); 
Serial.print(" | ");
}
}