【已解决】求帮忙修改一下程序
本帖最后由 zerglingbug 于 2014-4-11 17:47 编辑RT 从COM口读取字符串 并且通过逗号分割成4个部分 基本已经实现,唯独没法去除逗号,求大大帮忙看看是啥问题。
#include <Stdio.h>
String comdata1 = "";
char t1;
char t2;
char t3;
char t4;
int i;
int v;
int j1;
int j2;
int j3;
int j4;
void setup()
{
Serial.begin(9600);
}
void loop()
{
while (Serial.available() > 0)
{
comdata1 += char(Serial.read());
delay(2);};
for(i=0,j1=0,j2=0,j3=0,j4=0,v=0;i<10;i++)
{if (v==0)
{
if(comdata1==',')
v=1;
t1=comdata1;
j1++;
}
else if (v==1)
{if(comdata1==',')
v=2;
t2=comdata1;
j2++;}
else if (v==2)
{if(comdata1==',')
v=3;
t3=comdata1;
j3++;}
else if (v==3)
{
t4=comdata1;
j4++;}
}
if(v==1)
int w1=atoi(t1);
Serial.print(comdata1);
Serial.print("//");
Serial.print(t1);
Serial.print("//");
Serial.print(t2);
Serial.print("//");
Serial.print(t3);
Serial.print("//");
Serial.print(t4);
Serial.println("");
if(Serial.available() > 0)
comdata1="";
for(int i=0;i<10;i++)
t1='\0';
for(int i=0;i<10;i++)
t2='\0';
for(int i=0;i<10;i++)
t3='\0';
for(int i=0;i<10;i++)
t4='\0';
}
调试出来了 在每个 if(comdata1==',')语句结束后面加个contiune跳过读取,的那一次循环就行了 之前不是有朋友說了, 在串口讀取數字, 最简单的办法是使用 Serial.parseInt() 函数 嗎?
看你寫程式的經驗不多, 還是用簡單的方法好了. Super169 发表于 2014-4-11 18:17 static/image/common/back.gif
之前不是有朋友說了, 在串口讀取數字, 最简单的办法是使用 Serial.parseInt() 函数 嗎?
看你寫程式的經 ...
看着说明是直接从串口读取int型,确实不用转换了, 不过其实用atoi吧char类型转成int很方便的,现在程序写粗来之后一下子豁然开朗,之前陷入僵局的时候还是有点钻牛角尖,不过不管怎么说 谢谢各位大大的无私帮助。
页:
[1]