Arduino SoftwareSerial库不起作用



我有一个非常简单的Arduino Uno代码。使用SoftwareSerial lib.

#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不适合我。

方法SoftwareSerial::write()在写入时禁用中断,在这一行。所以当你写你的字节arduino是聋的传入位(除了可能第一个上升沿,这可能会延迟,直到中断再次启用-我实际上不记得)。

我猜MySerial(6-7)指向调制解调器(Sim900或Sim300), ARDUINO ONE的串行(0-1)指向PC的USB端口。

为调制解调器配置跳线,以便您可以侦听端口6-7

试试这个:

IssueCommand ( "AT"); // or mySerial.println("AT+V") 
   ReadSerial ();
Void readSerial () {
   While (mySerial.available ()) {
     Serial.write (mySerial.read ());
     Delay (10);
   }
}

对不起,我住在墨西哥mbnava@gmail.com联系我。随意

最新更新