for循环中2个逗号提出两个数字。最后一个逗号位数+1到最后一位不就是最后一个数字了吗
麽麽茶㊣ 发表于 2014-4-11 15:00 static/image/common/back.gif
“1,2,3” 一个字符串2个逗号3个数字
for循环中2个逗号提出两个数字。最后一个逗号位数+1到最后一位不 ...
因为数据可能不是一位的 也许是11,22,33,44也有可能是11111,2,3,4所以可能不能用位数来判断啊 学习一下。。。我也被这个事情烦恼着 maxims 发表于 2014-4-11 22:37 static/image/common/back.gif
学习一下。。。我也被这个事情烦恼着
楼主可能基础不太好,我今晚刚做了个无线头追,用的无线串口传输的,上代码#include <Servo.h>
#define SERIAL_BAUD 9600
Servo servoPan;
Servo servotill;
char data;
int index,panAngle,tiltAngle;
char *p;
void setup() {
// put your setup code here, to run once:
Serial.begin(SERIAL_BAUD);
servoPan.attach(9);
servotill.attach(10);
}
void loop() {
// put your main code here, to run repeatedly:
memset(data,0,10);
index=0;
p=NULL;
while(Serial.available())
{
data=Serial.read();
delay(10);
}
if(data=='%')
{
p=strtok(data+1,";");
if(p==NULL)
return;
panAngle = atoi(p);
p=strtok(NULL,";");
if(p==NULL)
return;
tiltAngle = atoi(p);
servoPan.write((int)panAngle);
servotill.write((int)tiltAngle);
}
}我这里串口输入的数据格式是 %123;55
前面一个%开头表示数据开始,每个数据使用分号分割,我这里传的是用字符标识的整形数据,所以要把字符串12355 转化成整形 转角 发表于 2014-4-12 00:04 static/image/common/back.gif
楼主可能基础不太好,我今晚刚做了个无线头追,用的无线串口传输的,上代码我这里串口输入的数据格式是 % ...
我的数据是HEX格式的
数据格式内容一般遵循7F 00 # 10 80 01 # 2F # 2F # 00 # 7F
这里的#号是不固定长度和内容的数值,其他的数值是固定下了的。看了一下你的代码。
我对自己的项目有以下的问题解决的比较乱
1、由于整个长度不确定,我该如何判断我的数据是否接收完整?
2、如何有效的分开各个数组?
3、最终,我是想学习如何有效的处理串口接收和发送的数据 maxims 发表于 2014-4-12 10:16 static/image/common/back.gif
我的数据是HEX格式的
数据格式内容一般遵循看了一下你的代码。
我对自己的项目有以下的问题解决的比较乱 ...
1。你发送端发送的时候知道不知道数据有多少?如果知道,那你就可以先发送个长度数据,然后根据长度去获取数据
2.制定通信协议
3.上面两条会了就会了
总结,对于复杂数据的传输,一定要按照一定的协议格式进行传输和解析 转角 发表于 2014-4-12 13:31 static/image/common/back.gif
1。你发送端发送的时候知道不知道数据有多少?如果知道,那你就可以先发送个长度数据,然后根据长度去获取 ...
1、我还真不知道有多少,因为发送端是人家的,不是我的。
2、我也想重新定制过协议(一边打字一边骂那个写协议的人),但是这牵扯太大了,不能够啊~
maxims 发表于 2014-4-12 16:23 static/image/common/back.gif
1、我还真不知道有多少,因为发送端是人家的,不是我的。
2、我也想重新定制过协议(一边打字一边骂那个 ...
那确实不好办,那只能把数据先接收进来进行解析了。容错处理上多下点功夫吧 ajson库吧,支持结构化数据,坛子里就有,我正在用。很方便。 zerglingbug 发表于 2014-4-11 15:03 static/image/common/back.gif
因为数据可能不是一位的 也许是11,22,33,44也有可能是11111,2,3,4所以可能不能用位数来判断啊
我知道。。。你看我的例子吧。。烧写实验一下就知道了。完全符合你的要求。
页:
1
[2]