求助帖:连续两次串口输入-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4123|回复: 3

求助帖:连续两次串口输入

[复制链接]
发表于 2013-7-11 14:30 | 显示全部楼层 |阅读模式
通过串口发送形如 100,100,100,100,100,100 的字符串,然后将这六个数字分别输出到相应的引脚,对其进行delay操作。
这个功能已经实现。

现在的问题的是,我买了一个蓝牙模块,但是这个蓝牙模块一次只能够接受20位以内的字符串,而刚才那串字符串是23位,这就意味着我必须通过两次输入,每次输入100,100,100这样的形式。
我试着如下编程,但是不可行。请问如何通过连续两次串口输入,让第一次的值给到comdata1,让第二次的值给到comdata2。
请各位大神帮忙!

int mark1=0, mark2=0;

void loop()
{
      while (mark1==0&&Serial.available() > 0)
    {
      comdata1 += char(Serial.read());
      delay(2);
    }
    mark1=1;

    while (Serial.available() > 0)
    {
      comdata2 += char(Serial.read());
      delay(2);
      mark2=1;
    }
发表于 2013-7-11 15:09 | 显示全部楼层
如果蓝牙缓冲区有限制,加一个停止位,用停止位来检测发送是否完成,然后发送过程中加一个延时
 楼主| 发表于 2013-7-11 18:50 | 显示全部楼层
奈何col 发表于 2013-7-11 15:09
如果蓝牙缓冲区有限制,加一个停止位,用停止位来检测发送是否完成,然后发送过程中加一个延时 ...

老师,你好!
请问如何添加停止位?
求解。

我刚才那段程序,执行之后,发送一次数据100,100,100之后,程序就直接运行下去了。没有停下来,让我发送第二次数据。
因此,最后赋值的时候,出现了前三个数据都是0,后三个数据都是100的情况。

点评

串口的高级用法 http://www.arduino.cn/thread-2710-1-1.html  详情 回复 发表于 2013-7-11 21:43
发表于 2013-7-11 21:43 | 显示全部楼层
天大地大 发表于 2013-7-11 18:50
老师,你好!
请问如何添加停止位?
求解。

串口的高级用法  http://www.arduino.cn/thread-2710-1-1.html
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-29 06:01 , Processed in 0.078626 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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