小编Hri*_*zov的帖子

与Arduino的串行通信仅在重启后的第一条消息上失败

我有一个Arduino设备和PC.我在板上尝试了以下代码:

gpsdata data;

char needtosend;

void setup() {            
  Serial.begin(9600);
  Serial.flush();  
  data.id = 0;
  data.src= 500;
  data.lat= 1;
  data.lon= 2;
  data.alt= 3;
  strcpy(data.date, "test date format");

}

void loop() {


   if(Serial.available() > 0)
   {
    needtosend = Serial.read();
    if ( needtosend == '2')
    {
      data.id = ++data.id % 10;
    }

    byte* buff = (byte*)&data;
    Serial.write(buff, sizeof(data));

   }
   delay (200);

}
Run Code Online (Sandbox Code Playgroud)

PC应用程序是用C++编写的,并使用boost库与Arduino设备进行通信.这是PC代码:

Serial serial("/dev/ttyUSB0",9600);
            gpsdata *data;
            char *values = new char[sizeof(gpsdata)];
    while(true)
    {
        try {

            serial.writeString("2",1);
            serial.read(values,sizeof(gpsdata));
            data = (gpsdata *)values;
            cout<<data->id<<endl;
        } …
Run Code Online (Sandbox Code Playgroud)

c++ boost serial-port arduino

5
推荐指数
1
解决办法
4461
查看次数

标签 统计

arduino ×1

boost ×1

c++ ×1

serial-port ×1