串口接收求助
我串口触摸屏 发回来串口信息是 ,请问我用arduino如何读取这个信息,我想通过接收到这个串口信息驱动某一个IO口控制。 本帖最后由 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
这段代码触摸控制开关不是很流畅,该怎么修改下
假如线路干扰小,别的中断也没有,也就是串口接受出错概率很低 容错部分都可以删了,估计是字符串函数处理的有点慢 本帖最后由 275891381 于 2018-7-21 09:31 编辑
275891381 发表于 2018-7-20 22:16
假如线路干扰小,别的中断也没有,也就是串口接受出错概率很低 容错部分都可以删了,估计是字符串函数 ...
就是那个时间写反了,已经改过了
5ms 间隔发收发10000个字节没丢一个数据
页:
[1]