求助arduino与processing无线传输-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9428|回复: 10

[已解决] 求助arduino与processing无线传输

[复制链接]
发表于 2013-4-28 21:16 | 显示全部楼层 |阅读模式
arduino通过apc220 发出{0,1,2}。  然后pc上接了配有cp2102的另一个apc220 。COM6是这个接口。通过processing读出发送的数据时总是出现一堆50或者-1的情况, 然而用arduino打开监视器 就是完整的 012 求大神帮助

arduino部分如下

byte fs[3]={0,1,2};
void setup()
{
  Serial1.begin(9600);
}

void loop()
{
  for (int n=0;n<3;n++)
    {Serial1.print(fs(n));}
delay(200);
}

processing 部分如下

import processing.serial.*;
  Serial port;
int x0,x1,x2;
void setup()
{
  port=new Serial(this,"COM6",9600);
}

void draw()
{
  if( port.available()>0)
{
  x0=port.read();
  x1=port.read();
  x2=port.read();
  println(x2);
}
}

望高手指点
发表于 2013-4-28 23:24 | 显示全部楼层
if( port.available()>3)
 楼主| 发表于 2013-5-2 10:43 | 显示全部楼层
奈何col 发表于 2013-4-28 23:24
if( port.available()>3)

为啥是大于3?

发表于 2013-5-2 11:02 | 显示全部楼层
你每次都会发送3个字符,你接收如果不等待3个字符同时进入缓冲区,就会出错。肯定不是改available()就行了的,你要根据实际应用情况,去思考怎么修改
 楼主| 发表于 2013-5-2 11:04 | 显示全部楼层
奈何col 发表于 2013-4-28 23:24
if( port.available()>3)

还是不行啊

点评

肯定不是改这么一句就行了的啊~我只是给你说问题出在这  详情 回复 发表于 2013-5-2 11:14
发表于 2013-5-2 11:14 | 显示全部楼层
klmylmtxz 发表于 2013-5-2 11:04
还是不行啊

肯定不是改这么一句就行了的啊~我只是给你说问题出在这
 楼主| 发表于 2013-5-2 11:25 | 显示全部楼层
奈何col 发表于 2013-5-2 11:14
肯定不是改这么一句就行了的啊~我只是给你说问题出在这

现在一直是50 50 50 的
 楼主| 发表于 2013-5-2 11:27 | 显示全部楼层
奈何col 发表于 2013-5-2 11:14
肯定不是改这么一句就行了的啊~我只是给你说问题出在这

怎么破啊啊
发表于 2013-5-2 11:33 | 显示全部楼层
50说明:
x2=port.read();接收到的字符为 ‘2’ ;
2的ascii为50
所以x2==50;

当然输出的是50咯。
认真思考下你要达到什么功能,然后再修改吧
 楼主| 发表于 2013-5-2 11:42 | 显示全部楼层
klmylmtxz 发表于 2013-5-2 11:27
怎么破啊啊

找到问题了 发送的是asc码 那么在processing里面怎么换成实际值
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-3 05:35 , Processed in 0.085361 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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