2016-11-04 7 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

을 수신 할 수 있습니다. 느낀다