【问题标题】:Serial communication between c# and arduinoc#和arduino之间的串行通信
【发布时间】:2016-04-11 17:01:49
【问题描述】:

我正在尝试向我的 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");
  }
} 

【问题讨论】:

  • 代码看起来不错! ...看起来是硬件问题。

标签: c# arduino


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    直接 PC 串口到 Arduino 连接是不可能的,因为 arduino 和 PC 之间的电压不同,它不会工作。我现在正在使用 FTDI,它运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多