我正在尝试将一些字节发送到我的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");
}
}
答案 0 :(得分:1)
我建议您在打开前关闭串口并检查它是否打开。
此外,您应该使用基于max232或类似的ttl usart转换器,或基于ft232或ch340的usb到串行转换器。这是因为arduino有5V ttl串口,而台式机有12V端口。
答案 1 :(得分:1)
由于arduino和PC之间的电压不同,因此无法实现直接的PC Serial to Arduino连接,因此无法正常工作。我现在正在使用FTDI,它的工作正常。