pythonserial OSError:[Errno 11]资源暂时不可用

2024-05-23 17:51:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Arduino Nano与ODROID(安装了Ubuntu14.04的单板机)进行串行通信。 Arduino代码:

void setup() {
   Serial.begin(9600); // set the baud rate
   Serial.println("Ready"); // print "Ready" once
}
void loop() {
  char inByte = ' ';
  if(Serial.available()){ // only send data back if data has been sent
    char inByte = Serial.read(); // read the incoming data
  Serial.println(inByte); 
}
  delay(100); // delay for 1/10 of a second
}   

ODROID中的Python代码:

#!/usr/bin/env python

from time import sleep
import serial
ser = serial.Serial('/dev/LIDAR', 9600, timeout=1) # Establish the connection on a specific port

sleep(1)
print "Arduino is initialized"

counter = 32 # Below 32 everything in ASCII is gibberish

while True:
    if (ser.inWaiting()>0):
      counter +=1
      ser.write(str(chr(counter))) # Convert the decimal number to ASCII then send it to the Arduino
      print ser.readline() # Read the newest output from the Arduino
      sleep(.1) # Delay for one tenth of a second
      if counter == 255:
          counter = 32

ser.close  

回溯(最近的最后一次):

File "./serial_test1.py", line 16, in <module>        
    print ser.readline() # Read the newest output from the Arduino       
File "/usr/lib/python2.7/dis-package/serial/serialposix.py", line 43, in read   
    buf = os.read(self.fd, size-len(read))     
OSError: [Errno 11]Resource temporarily unavailable 

然后我在打印了一些值之后出现了这个问题,我知道这个问题可能在当前时间没有可用的数据。但我怎样才能解决这个问题。谢谢你的帮助。


Tags: theinfromreaddataifcounterserial