|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /*
- 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
-
- Note:
- Not all pins on the Mega and Mega 2560 support change interrupts,
- so only the following can be used for RX:
- 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
-
- Not all pins on the Leonardo support change interrupts,
- so only the following can be used for RX:
- 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
-
- created 18 Apr. 2011
- modified 25 May 2012
- 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 10, RX = digital pin 11
- SoftwareSerial portOne(10,11);
-
- // software serial #2: TX = digital pin 8, RX = digital pin 9
- // on the Mega, use other pins instead, since 8 and 9 don't work on the Mega
- SoftwareSerial portTwo(8,9);
-
- void setup()
- {
- // Open serial communications and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
-
- // 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();
- }
-
-
-
-
-
-
|