2017-05-29 9 views
0

Arduino nanoとGNSS(SIMComのSIM33ELAスタンドアロンGNSSモジュール)に接続したい。Arduino Nano Gnssソフトウェアシリアル

私はrx/tx用のプログラムを書いていますが、うまくいきましたが、今はソフトウェアシリアルを使用したいと思います。間違ったデータがあります。

#include <SoftwareSerial.h> 
char incomingByte; // for incoming serial data 
double tbs; 
SoftwareSerial mySerial(8, 9); // RX, TX 
void setup() { 
    Serial.begin(115200);  
    while (!Serial) {  
    } 
    mySerial.begin(115200); 
    while (!mySerial) { 

    } 
} 

void loop() { 
    if (mySerial.available()) { 
     tbs = mySerial.read(); 
     incomingByte = (char)tbs; 
    Serial.print(incomingByte); 
    } 

    /*if (Serial.available() > 0) {   
     incomingByte = Serial.read();    
     Serial.print(incomingByte);    
     }*/ 

} 

結果について

画像:ほとんど

Wrong data with Software serial

Good data with Serial

+0

while(!mySerial){ }その行は何ですか?どのようなSoftwareSerialの例でそれを見ましたか? –

+0

はい私は見ました....しかし、誰も私を助けることはできません.... –

+0

どのようなSoftwareSerialの例では、その行を見ましたか? –

答えて

0

double浮動小数点変数に1つの文字を読んでいません。ちょうどこれを行う:

void loop() 
{ 
    if (mySerial.available()) { 
    char c = mySerial.read(); 
    Serial.write(c); 
    } 
} 

また、これら2つのピンでAltSoftSerialを使用する必要があります。 SoftwareSerialは、非常に非効率的です。これは、割り込みを長時間無効にするためです。同時に送受信することはできません。実際に、Arduinoはキャラクターがまたはを受け取っている間に何もできません。

GPSライブラリについては、NeoGPSを試すことができます。これは、最新のデバイスから文を解析できる唯一のArduinoライブラリです。他のすべてのライブラリよりも小さく、高速で、信頼性が高く、正確です。

関連する問題