lond131421 发表于 2018-7-18 07:40:49

串口接收求助

我串口触摸屏 发回来串口信息是 ,请问我用arduino如何读取这个信息,我想通过接收到这个串口信息驱动某一个IO口控制。

275891381 发表于 2018-7-18 10:18:05

本帖最后由 275891381 于 2018-7-21 09:32 编辑



//发送 会开关led13
boolean stringComplete = false;

String read_data="";
u8 start_flag=0;
u16 read_time=0;

u16 read_num=0;

void setup() {
pinMode(13, OUTPUT);
digitalWrite(13,0);
Serial.begin(115200);

read_data.reserve(100);
Serial.flush();
}

void loop() {

if (stringComplete) {
    Serial.println(read_data);
    //Serial.println(read_data.length());
    read_num=(read_data.substring(4, read_data.length()-1)).toInt();
    //Serial.println(read_num);
    if(read_num==13)
       digitalWrite(13, 1-digitalRead(13));
    read_data="";
    stringComplete = false;
}
}


void serialEvent()
{
while (Serial.available())
{
    char inChar = (char)Serial.read();

    if(inChar=='[')
    {
      start_flag=1;
      read_time=millis();
    }
    if(start_flag==1)
    {
       read_data += inChar;
       if(read_data.length()>20||(millis()-read_time>50))
       {
          start_flag=0;
          read_data="";
       }
    }
    if(start_flag==1&&inChar==']')
    {
      start_flag=0;
      stringComplete = true;
    }
}
}

lond131421 发表于 2018-7-20 08:06:56

这段代码触摸控制开关不是很流畅,该怎么修改下

275891381 发表于 2018-7-20 22:16:12

lond131421 发表于 2018-7-20 08:06
这段代码触摸控制开关不是很流畅,该怎么修改下

假如线路干扰小,别的中断也没有,也就是串口接受出错概率很低 容错部分都可以删了,估计是字符串函数处理的有点慢

275891381 发表于 2018-7-21 09:27:44

本帖最后由 275891381 于 2018-7-21 09:31 编辑

275891381 发表于 2018-7-20 22:16
假如线路干扰小,别的中断也没有,也就是串口接受出错概率很低 容错部分都可以删了,估计是字符串函数 ...

就是那个时间写反了,已经改过了
5ms 间隔发收发10000个字节没丢一个数据
页: [1]
查看完整版本: 串口接收求助