2016-03-14 60 views
0

我試圖建立一個Beaglebone黑色和Arduino的巨型之間的串行通信,但我有問題得到這個工作,特別是在小獵犬的串行通信側。響應建立B/T Beaglebone黑色(REVC,DEB)和Arduino的巨型

Traceback (most recent call last): 
    File "/var/lib/cloud9/IBID 2.0 /data stream test (1).py", line 35, in <module> 
    sensorValue += ser.read('UART1') #add more for more pins 
    File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 449, in read 
    buf = os.read(self.fd, size-len(read)) 
TypeError: unsupported operand type(s) for -: 'str' and 'int' 

在試圖運行這段代碼:我不斷收到此錯誤信息

import Adafruit_BBIO.UART as UART 
import serial 

UART.setup('UART1') 

name = raw_input('name your file: ') 
final_name = os.path.join(/sequence of files and folders/, name + '.txt') 
data = open(name + '.txt', 'a+') 

ser = serial.Serial(port = "/dev/ttyO1", baudrate=9600, timeout = 1000) 

sensorValue = 0 
header = 'Sensor 1 output' 
data.write(str(header)) 
data.write(str('\n')) 
while True: 
    ser.open() 
    sensorValue += ser.read('UART1') 
    data.write(sensorValue) 

我使用的是雲9 IDE到Beaglebone程序來接收輸入數據從一個連接到Arduino的傳感器(通過邏輯轉換器)。錯誤代碼讓我感到神祕,至少可以說。它提供的鏈接不會引導我在IDE中找到任何內容(找不到文件)。我還沒有與str型能找到多少[關於如何解決此錯誤。]

回答

1

在此行中

sensorValue += ser.read('UART1') 

您呼叫serial.Serial.read(大小= 1)作爲論據。該方法需要int