极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 23191|回复: 9

请教问题:processing 读取 arduino数据不一致 不知道怎么回事

[复制链接]
发表于 2012-6-14 10:53:35 | 显示全部楼层 |阅读模式
ARDUINO代码:
void setup()
{
  Serial.begin(9600);//RS232串口通讯波特率为9600  
}

void loop(){
  int data = analogRead(A0);
  Serial.println(data/4);//定义向Processing发送数据  
  delay(100);
}

PROCESSING代码:
import processing.serial.*;
Serial duankou;
int data;

void setup() {
  duankou= new Serial(this, "COM3", 9600);
}

void draw() {
  if (duankou.available()>0) {
    data=duankou.read();
    println(data);
  }
}

ARDUINO 读出的数值:


PROCESSING 出的数值:

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2012-6-14 12:21:10 | 显示全部楼层
没人遇过这种情况吗
回复 支持 反对

使用道具 举报

发表于 2012-6-14 13:13:12 | 显示全部楼层
我测试了下你的代码。。。我这边显示也是这种问题。。。貌似是processing方面的问题,具体得查查processing语法手册了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-14 15:23:10 | 显示全部楼层
好郁闷啊 。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-14 16:52:52 | 显示全部楼层
继续求助 。。。  
回复 支持 反对

使用道具 举报

发表于 2012-6-18 22:52:42 | 显示全部楼层
手工测试一下,可看出问题在那里
回复 支持 反对

使用道具 举报

发表于 2012-6-18 22:55:31 | 显示全部楼层
使用串口查看工具,或直接使用系统提供的工具。程序-工具-通讯-超级终端  ,设立为串口三,观察原始传递的数据,可能是编码方式或则拨特绿不对
回复 支持 反对

使用道具 举报

发表于 2012-6-19 09:45:57 | 显示全部楼层
是这样的。。因为你对串口接收的数据没有处理。。

他一个一个字符接收,而不是整个字符串都接收。13 10对应的是/r /n的ascii码,50 53 53对应的是2 5 5的ascii。你要完整接收可以参见arduino example stringtoint或者  ansifa 的字符串接收帖子。

processing中字符串接收和arduino字符串接收处理性质大致相同。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-19 14:46:57 | 显示全部楼层
问题已经解决了 是代码的问题  PROCESSING要读取ARDUINO写入到串口的数据   把ARDUINO里面代码中Serial.println换成Serial.write  就OK了
回复 支持 反对

使用道具 举报

发表于 2013-6-28 10:18:22 | 显示全部楼层
Serial.println换成Serial.write  数据在Arduino中都不能正常读取了呢
怎么回事啊
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-6 05:36 , Processed in 0.038469 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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