aboutsummaryrefslogtreecommitdiff
path: root/libraries/SoftwareSerial/examples/TwoPortRXExample
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/SoftwareSerial/examples/TwoPortRXExample')
-rwxr-xr-xlibraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde50
1 files changed, 50 insertions, 0 deletions
diff --git a/libraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde b/libraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde
new file mode 100755
index 0000000..1db4536
--- /dev/null
+++ b/libraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde
@@ -0,0 +1,50 @@
+#include <SoftwareSerial.h>
+
+SoftwareSerial ss(2, 3);
+SoftwareSerial ss2(4, 5);
+
+/* This sample shows how to correctly process received data
+ on two different "soft" serial ports. Here we listen on
+ the first port (ss) until we receive a '?' character. Then
+ we begin listening on the other soft port.
+*/
+
+void setup()
+{
+ // Start the HW serial port
+ Serial.begin(57600);
+
+ // Start each soft serial port
+ ss.begin(4800);
+ ss2.begin(4800);
+
+ // By default, the most recently "begun" port is listening.
+ // We want to listen on ss, so let's explicitly select it.
+ ss.listen();
+
+ // Simply wait for a ? character to come down the pipe
+ Serial.println("Data from the first port: ");
+ char c = 0;
+ do
+ if (ss.available())
+ {
+ c = (char)ss.read();
+ Serial.print(c);
+ }
+ while (c != '?');
+
+ // Now listen on the second port
+ ss2.listen();
+
+ Serial.println("Data from the second port: ");
+}
+
+void loop()
+{
+ if (ss2.available())
+ {
+ char c = (char)ss2.read();
+ Serial.print(c);
+ }
+}
+