求助帖:连续两次读取串口数据
通过串口发送形如 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;
}
蓝牙模块的缓冲区是自己控制的,单片机的串口缓冲也是自己的,没绝对关系,主要影响的是发送速度,数据不能发送太快。最好用两个字节做包头,一个自己做包尾,方便判断。 losingrose 发表于 2013-7-11 15:56 static/image/common/back.gif
蓝牙模块的缓冲区是自己控制的,单片机的串口缓冲也是自己的,没绝对关系,主要影响的是发送速度,数据不能 ...
老师,你好!
请问具体如何实现?
求解。
我刚才那段程序,执行之后,发送一次数据100,100,100之后,程序就直接运行下去了。没有停下来,让我发送第二次数据。
因此,最后赋值的时候,出现了前三个数据都是0,后三个数据都是100的情况。
losingrose 发表于 2013-7-11 15:56 static/image/common/back.gif
蓝牙模块的缓冲区是自己控制的,单片机的串口缓冲也是自己的,没绝对关系,主要影响的是发送速度,数据不能 ...
请问:
我的PC端发出来的是hex格式的数据,我的数据是“7F 00 # 10 80 01 # 2F # 2F # 00 # 7F”这么一个格式,#号代表的位数不一定,我应该怎么写代码,才能把这些#代表的东西取出来呢?
看了很多资料,都没有一个头绪。
页:
[1]