我遇到了麻烦,我有一台具有串行通信的小型游戏机,我必须发送一个十六进制值,因此它可以用十六进制值进行响应,其中有十六进制值一个我需要提取的数字。Arduino在读取后丢失串行字节
随着我在C#中已经writen一个客户它完美的作品,我得到的每一个字节,
但随着Arduino的我得到这个: '00 03 03 12' 在那里我normaly应该得到这样的:01 10 00 03 43 20 03 12',你会看到我丢失了一半的字节。
我尝试了一切,我没有得到它的周围。
当我与arduino和Pc通信时,所有的读写操作都是完美的。但与游戏机只发送工程很好,但是当我收到数据我松散它像上面。 谢谢
这里是代码:
void setup()
{
Serial3.begin(19200, SERIAL_8E1);
Serial.begin(19200, SERIAL_8E1);
delay(1000);
}
void statsP()
{
delay(400);
Serial3.write(0x01);
Serial3.write(0x10);
delay(300);
}
void generalpol()
{
delay(200);
Serial3.write(0x80);
Serial3.write(0x81);
}
void loop()
{
generalpol();
statsP();
if(Serial3.available()){
char commandbuffer;
int j = Serial3.available();
for (int i =0 ; i<j ; i++)
{
while(Serial3.available()) {
commandbuffer = Serial3.read();
Serial.write(commandbuffer);
}
}
}
}