diff options
Diffstat (limited to 'libraries/SoftwareSerial/examples')
-rwxr-xr-x | libraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde | 50 | ||||
-rw-r--r-- | libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino | 78 |
2 files changed, 78 insertions, 50 deletions
diff --git a/libraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde b/libraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde deleted file mode 100755 index 1db4536..0000000 --- a/libraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde +++ /dev/null @@ -1,50 +0,0 @@ -#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);
- }
-}
-
diff --git a/libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino b/libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino new file mode 100644 index 0000000..e870c6f --- /dev/null +++ b/libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino @@ -0,0 +1,78 @@ +/* + Software serial multple serial test + + Receives from the two software serial ports, + sends to the hardware serial port. + + In order to listen on a software port, you call port.listen(). + When using two software serial ports, you have to switch ports + by listen()ing on each one in turn. Pick a logical time to switch + ports, like the end of an expected transmission, or when the + buffer is empty. This example switches ports when there is nothing + more to read from a port + + The circuit: + Two devices which communicate serially are needed. + * First serial device's TX attached to digital pin 2, RX to pin 3 + * Second serial device's TX attached to digital pin 4, RX to pin 5 + + created 18 Apr. 2011 + by Tom Igoe + based on Mikal Hart's twoPortRXExample + + This example code is in the public domain. + + */ + +#include <SoftwareSerial.h> +// software serial #1: TX = digital pin 2, RX = digital pin 3 +SoftwareSerial portOne(2, 3); + +// software serial #2: TX = digital pin 4, RX = digital pin 5 +SoftwareSerial portTwo(4, 5); + +void setup() +{ + // Start the hardware serial port + Serial.begin(9600); + + // Start each software serial port + portOne.begin(9600); + portTwo.begin(9600); +} + +void loop() +{ + // By default, the last intialized port is listening. + // when you want to listen on a port, explicitly select it: + portOne.listen(); + Serial.println("Data from port one:"); + // while there is data coming in, read it + // and send to the hardware serial port: + while (portOne.available() > 0) { + char inByte = portOne.read(); + Serial.write(inByte); + } + + // blank line to separate data from the two ports: + Serial.println(); + + // Now listen on the second port + portTwo.listen(); + // while there is data coming in, read it + // and send to the hardware serial port: + Serial.println("Data from port two:"); + while (portTwo.available() > 0) { + char inByte = portTwo.read(); + Serial.write(inByte); + } + + // blank line to separate data from the two ports: + Serial.println(); +} + + + + + + |