2016-12-17 4 views
1

私はアプリケーションがodroid xu4からArduino pro miniにデータを送るためにシリアルポートを使用しています。データは10バイトのパッケージです。 "Serial_Port.write(struct.pack('cBBBBBBBBB', "R", cmd[0], cmd[1], cmd[2], cmd[3], cmd[4], cmd[5], cmd[6], cmd[7], cmd[8]))"を使い、odroidは20ミリ秒arduinoとラズベリーパイシリアルポートが遅い

ARDUINOコード:)、Arduinoの上にこれはコードである

#include <Wire.h> 

char CMD[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' '}; 
char hand; 

void setup() { 
    Serial.begin(115200); 
    Serial.setTimeout(10); 
    Serial.println("Arduinno serial to I2C converter 115200"); 
} 

void loop() { 
    if (Serial.available() == 10) { 
    Serial.readBytes(CMD, 10); 
    Serial.println(CMD); 
    } 
} 

iはアルドゥイーノにXU4からデータを送信するために2つのXBee PRO S2Cを使用し、私が送信RXピンを用いXU4とのXBeeを接続します、ポート: '/ dev/ttySAC0'。

私がプログラムを実行するとき、Arduinoはデータの最初の2〜3フレームだけを受け取ると、リセットボタンを押すまで動作を停止します。 誰でもこの問題を解決できますが、解決には時間がかかりますが、良い結果は得られません。 私はArduinoをラズベリーPi B +で置き換えようとしましたが、同じ問題がありました。

答えて

1

ないのArduino spcialistが、私は変更することをお勧め

if (Serial.available() == 10) { 

if (Serial.available() >= 10) { 

への現在のコードは、利用可能な 正確つのメッセージであることが依存しています。 Pythonコードがその後の読み取りの間に2つのメッセージを送信すると、現在のコードは失敗します。

関連する問題