【发布时间】:2013-11-20 21:46:27
【问题描述】:
我正在做一个项目,我必须一次接收大约 25 个字符的数据才能在 Raspberry Pi 中处理它。这是生成我想从 Arduino 接收的一些数据的示例代码:
char i =0;
char a =0;
char b=0;
void setup(){
Serial.begin(9600);
for(i=0;i<25;i++){
Serial.print('l');}
Serial.print('\n');
delay(2000);
}
void loop(){
for(i=0;i<25;i++){
for(a=0;a<i;a++){
if((a==9)||(a==19)||(a==24))
Serial.print('l');
else
Serial.print('d');
}
for(b=0;b<25-i;b++){
Serial.print('l');
}
delay(2000);
}
}
它会发送这样的一行 'lllldddddllldddd...' 这行是 25 个字符的长度。现在,我想用 Raspberry Pi 接收这个。这是我正在尝试工作的代码:
ser = serial.Serial('/dev/AMA0',9600,timeout=1)
ser.open()
try:
serial_data = ser.readline()
print serial_data
except serial.serialutil.SerialException:
pass
此代码非常正确地接收数据大约 5 秒钟,然后突然停止接收。
此外,当我尝试以下操作时,我没有得到任何输出或输入/输出错误。
serial_data = ser.readline()
print serial_data
EDIT1: 好的,我现在评论了异常。它给出了以下错误:
raise SerialException('device reporst rediness to read but returned no data (device disconnected?)')
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected?)
通过 PySerial 将 25 个字符的数据从 arduino 接收到 raspberry 的正确方法是什么?任何帮助将不胜感激。
【问题讨论】:
标签: python serial-port arduino raspberry-pi pyserial