极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13097|回复: 4

串口接收求助

[复制链接]
发表于 2018-7-18 07:40:49 | 显示全部楼层 |阅读模式
我串口触摸屏 发回来串口信息是 [BN:1]  ,请问我用arduino如何读取这个信息,我想通过接收到这个串口信息驱动某一个IO口控制。
回复

使用道具 举报

发表于 2018-7-18 10:18:05 | 显示全部楼层
本帖最后由 275891381 于 2018-7-21 09:32 编辑


  1. //发送  [BN:13] 会开关led13
  2. boolean stringComplete = false;  

  3. String read_data="";
  4. u8 start_flag=0;
  5. u16 read_time=0;

  6. u16 read_num=0;

  7. void setup() {
  8.   pinMode(13, OUTPUT);
  9.   digitalWrite(13,0);
  10.   Serial.begin(115200);
  11.   
  12.   read_data.reserve(100);
  13.   Serial.flush();
  14. }

  15. void loop() {

  16.   if (stringComplete) {
  17.     Serial.println(read_data);
  18.     //Serial.println(read_data.length());
  19.     read_num=(read_data.substring(4, read_data.length()-1)).toInt();
  20.     //Serial.println(read_num);
  21.     if(read_num==13)
  22.        digitalWrite(13, 1-digitalRead(13));
  23.     read_data="";
  24.     stringComplete = false;
  25.   }
  26. }


  27. void serialEvent()
  28. {
  29.   while (Serial.available())
  30.   {
  31.     char inChar = (char)Serial.read();

  32.     if(inChar=='[')
  33.     {
  34.       start_flag=1;
  35.       read_time=millis();
  36.     }
  37.     if(start_flag==1)
  38.     {
  39.        read_data += inChar;
  40.        if(read_data.length()>20||(millis()-read_time>50))
  41.        {
  42.           start_flag=0;
  43.           read_data="";
  44.        }
  45.     }
  46.     if(start_flag==1&&inChar==']')
  47.     {
  48.       start_flag=0;
  49.       stringComplete = true;
  50.     }
  51.   }
  52. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-20 08:06:56 | 显示全部楼层
这段代码  触摸控制开关不是很流畅,该怎么修改下
回复 支持 反对

使用道具 举报

发表于 2018-7-20 22:16:12 | 显示全部楼层
lond131421 发表于 2018-7-20 08:06
这段代码  触摸控制开关不是很流畅,该怎么修改下


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

使用道具 举报

发表于 2018-7-21 09:27:44 | 显示全部楼层
本帖最后由 275891381 于 2018-7-21 09:31 编辑
275891381 发表于 2018-7-20 22:16
假如线路干扰小,别的中断也没有,也就是串口接受出错概率很低 容错部分都可以删了,估计是字符串函数 ...


就是那个时间写反了,已经改过了
5ms 间隔发收发10000个字节没丢一个数据

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 22:24 , Processed in 0.038897 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表