我想把一些字节发送到我的Arduino Mega的serial1。我发送这个byte[] writebuffer = { 1, 2, 3, 4 };,但是Arduino中的串行输出是127 191 247 0
我使用的是一个db9,我已经将gnd连接到gnd,tx连接到rx1,rx连接到tx1(从db9连接到arduino)。
这是我的密码:

SerialPort sepo = new SerialPort("COM6", 9600);
sepo.Open();
byte[] writebuffer = { 1, 2, 3, 4 };
sepo.Write(writebuffer, 0, writebuffer.Length);
sepo.Close();

这是Arduino代码:
void setup()
{
  Serial.begin(115200);
  Serial1.begin(9600);
}
void loop()
{
  if(Serial1.available())
  {
     while(Serial1.available())
     {
        Serial.print((byte)Serial1.read());
     }
     Serial.println();
     Serial1.println("recibi datos");
  }
}

最佳答案

我建议您在打开之前关闭串行端口,并检查它是否已打开。
此外,您应该使用基于max232或类似的ttl usart转换器,或基于ft232或ch340的usb到串行转换器。这是因为Arduino有5V TTL串行端口,而Desktop有12V端口。

08-26 00:06