我想把一些字节发送到我的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端口。