请教问题:processing 读取 arduino数据不一致 不知道怎么回事
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 出的数值:
没人遇过这种情况吗 我测试了下你的代码。。。我这边显示也是这种问题。。。貌似是processing方面的问题,具体得查查processing语法手册了。 好郁闷啊 。。。 继续求助 。。。 手工测试一下,可看出问题在那里 使用串口查看工具,或直接使用系统提供的工具。程序-工具-通讯-超级终端,设立为串口三,观察原始传递的数据,可能是编码方式或则拨特绿不对 是这样的。。因为你对串口接收的数据没有处理。。
他一个一个字符接收,而不是整个字符串都接收。13 10对应的是/r /n的ascii码,50 53 53对应的是2 5 5的ascii。你要完整接收可以参见arduino example stringtoint或者ansifa 的字符串接收帖子。
processing中字符串接收和arduino字符串接收处理性质大致相同。 问题已经解决了 是代码的问题PROCESSING要读取ARDUINO写入到串口的数据 把ARDUINO里面代码中Serial.println换成Serial.write就OK了 Serial.println换成Serial.write数据在Arduino中都不能正常读取了呢
怎么回事啊
页:
[1]