树莓派串口数据错误

问题描述:

我通过USB端口将Arduino Board连接到树莓。使用处理代码,我想读取arduino发送的70个字节。如果我在我的PC窗口上使用该程序,它可以工作,但是使用Raspberry,我从Processing获得的数据与Arduino发送的数据不同。这是读取串口的处理代码:树莓派串口数据错误

import processing.serial.*; 
Serial uart; 
byte[] codice= new byte[70]; 

void setup() { 
    uart= new Serial(this, Serial.list()[1], 9600); 
} 

void draw() { 
    if (uart.available()>0) { 
    codice=uart.readBytes(); 
    println(codice); 
    } 
} 

在我的情况下,串口是“dev/ttyUSB0”。我也试图用这种方式与python:

>>> import serial 
>>> ser = serial.Serial('/dev/ttyUSB0', 9600) 
>>> while True: 
...  print ser.readline() 

另外在python中也有相同的错误。我也尝试改变波特率(115200),结果相同。

+0

不同如何......? –

+0

@marc例如,我应该有20和22之间的值,但在树莓上,我的值在10到40之间 – andrsimo

+0

发送的数据看起来是什么样的(70字节)? –

拔下Arduino的插头,用ls /dev/tty*搜索并插入。
如果现在再次搜索ls /dev/tty*,您将看到一个新设备,例如/dev/ttyACM0。此外,您需要arduino驱动程序来模拟COM端口sudo apt-get update && sudo apt-get install arduino

Arduino的代码

void setup(){ 
    Serial.begin(9600); 
} 

void loop(){ 
    Serial.println(“Hello Raspi”); 
    delay(3000); 
} 

树莓派代码片段

import serial 
ser = serial.Serial('/dev/ttyACM0', 9600) 

试试这个页面上的Python的例子:How to attach an Arduino?

+0

谢谢你的答案,我找到的唯一设备是'/ dev/ttyUSB0'。系统已更新,并且arduino也是最新版本 – andrsimo

+0

我找到了对/ dev/ttyUSB0的引用,例如FT232RL芯片的设备名称。设备参考是好的。 – codeflag