2016-11-04 14 views
0

私はArduino Uno用の非常に単純なコードを持っています。 SoftwareSerial libの使用。Arduino SoftwareSerialライブラリは動作しません

#include <SoftwareSerial.h> 
#define rxPin 6 
#define txPin 7 
SoftwareSerial mySerial(rxPin, txPin); 

void setup() { 
    pinMode(rxPin, INPUT); 
    pinMode(txPin, OUTPUT); 
    Serial.begin(9600); 
    mySerial.begin(2400); 
    Serial.println("Serial init");   
} 

void loop() { 
    delay(2000); 
    Serial.println("Serial link started"); 

    mySerial.write(0x15); 

    if(mySerial.available()){ 
    int incomingByte = mySerial.read(); 
    Serial.print(incomingByte); 
    Serial.print(" is here"); 
    } 
} 

rxPinとtxPinとは互いに直接結合している。 ArduinoはUSB経由でPCにも接続されています。私はmySerial.available()ループからの応答を持たず、mySerial.read()は-1を返します。誰が知っていますか、どこに問題がありますか? SoftwareSerialは私のために働かない。

答えて

1

メソッドSoftwareSerial::write()は、書き込み中に割り込みを無効にします。at this line。だからあなたのバイトを書いているとき、arduinoは入ってくるビットに聞こえません(おそらく、最初の立ち上がりエッジを除いて、おそらく割り込みが再びイネーブルにされるまで遅れるでしょう - 私は実際に覚えていません)。

0

MySerial(6-7)はモデム(Sim900またはSim300)を指し、ARDUINO ONEのシリアル(0-1)はPCのUSBポートを指していると思います。

IssueCommand ("AT"); // or mySerial.println("AT+V") 
    ReadSerial(); 

Void readSerial() { 
    While (mySerial.available()) { 
    Serial.write (mySerial.read()); 
    Delay (10); 
    } 
} 

Excusmeは私が私に連絡することをメキシコ[email protected]に住んでいます:ジャンパーとモデム

設定あなたはこれを試してみてください、ポート6-7

のために聞くことができるように。気分がフリー

関連する問題