极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9581|回复: 3

【已解决】求帮忙修改一下程序

[复制链接]
发表于 2014-4-11 17:30:22 | 显示全部楼层 |阅读模式
本帖最后由 zerglingbug 于 2014-4-11 17:47 编辑

RT 从COM口读取字符串 并且通过逗号分割成4个部分 基本已经实现,唯独没法去除逗号,求大大帮忙看看是啥问题。

  1. #include <Stdio.h>
  2. String comdata1 = "";
  3. char t1[4];
  4. char t2[4];
  5. char t3[4];
  6. char t4[4];
  7. int i;
  8. int v;
  9. int j1;
  10. int j2;
  11. int j3;
  12. int j4;

  13. void setup()
  14. {
  15. Serial.begin(9600);
  16. }
  17. void loop()
  18. {
  19.   while (Serial.available() > 0)
  20.   {
  21.    comdata1 += char(Serial.read());
  22.    delay(2);};

  23.   for(i=0,j1=0,j2=0,j3=0,j4=0,v=0;i<10;i++)
  24.   {if (v==0)
  25.     {
  26.       if(comdata1[i]==',')
  27.       v=1;
  28.      t1[j1]=comdata1[i];
  29.      j1++;
  30.     }
  31.    else if (v==1)
  32.     {if(comdata1[i]==',')
  33.     v=2;
  34.     t2[j2]=comdata1[i];
  35.     j2++;}  
  36.     else if (v==2)
  37.     {if(comdata1[i]==',')
  38.     v=3;
  39.     t3[j3]=comdata1[i];
  40.     j3++;}
  41.     else if (v==3)
  42.     {
  43.     t4[j4]=comdata1[i];
  44.     j4++;}   
  45.     }
  46.   if(v==1)

  47.   
  48.   int w1=atoi(t1);
  49.   
  50.   
  51. Serial.print(comdata1);
  52. Serial.print("//");
  53. Serial.print(t1);
  54. Serial.print("//");
  55. Serial.print(t2);
  56. Serial.print("//");
  57. Serial.print(t3);
  58. Serial.print("//");
  59. Serial.print(t4);
  60. Serial.println("");
  61. if(Serial.available() > 0)
  62. comdata1="";
  63. for(int i=0;i<10;i++)
  64. t1[i]='\0';
  65. for(int i=0;i<10;i++)
  66. t2[i]='\0';
  67. for(int i=0;i<10;i++)
  68. t3[i]='\0';
  69. for(int i=0;i<10;i++)
  70. t4[i]='\0';

  71. }
复制代码

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2014-4-11 17:46:58 | 显示全部楼层
调试出来了 在每个 if(comdata1[i]==',')语句结束后面加个contiune跳过读取,的那一次循环就行了
回复 支持 反对

使用道具 举报

发表于 2014-4-11 18:17:52 | 显示全部楼层
之前不是有朋友說了, 在串口讀取數字, 最简单的办法是使用 Serial.parseInt() 函数 嗎?  

看你寫程式的經驗不多, 還是用簡單的方法好了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-11 19:02:02 | 显示全部楼层
Super169 发表于 2014-4-11 18:17
之前不是有朋友說了, 在串口讀取數字, 最简单的办法是使用 Serial.parseInt() 函数 嗎?  

看你寫程式的經 ...

看着说明是直接从串口读取int型,确实不用转换了, 不过其实用atoi吧char类型转成int很方便的,现在程序写粗来之后一下子豁然开朗,之前陷入僵局的时候还是有点钻牛角尖,不过不管怎么说 谢谢各位大大的无私帮助。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 20:03 , Processed in 0.040996 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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