c#和arduino之间的串行通信

时间:2016-04-11 17:01:49

标签: c# arduino

我正在尝试将一些字节发送到我的arduino MEGA的Serial1。我发送此byte[] writebuffer = { 1, 2, 3, 4 };但是arduino中Serial的输出是127 191 247 0

我正在使用DB9,我已将GND连接到GND,Tx连接到Rx1,Rx连接到Tx1(从DB9连接到arduino)。

这是我的C#代码:

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");
  }
} 

2 个答案:

答案 0 :(得分:1)

我建议您在打开前关闭串口并检查它是否打开。

此外,您应该使用基于max232或类似的ttl usart转换器,或基于ft232或ch340的usb到串行转换器。这是因为arduino有5V ttl串口,而台式机有12V端口。

答案 1 :(得分:1)

由于arduino和PC之间的电压不同,因此无法实现直接的PC Serial to Arduino连接,因此无法正常工作。我现在正在使用FTDI,它的工作正常。