53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
// AltSoftSerial Receive Test
|
|
//
|
|
// Transmit data with Serial1 and try to receive
|
|
// it with AltSoftSerial. You must connect a wire
|
|
// from Serial1 TX to AltSoftSerial RX.
|
|
|
|
#include <AltSoftSerial.h>
|
|
|
|
AltSoftSerial altser;
|
|
const int mybaud = 9600;
|
|
|
|
// Board Serial1 TX AltSoftSerial RX
|
|
// ----- ---------- ----------------
|
|
// Teensy 3.x 1 20
|
|
// Teensy 2.0 8 (D3) 10 (C7)
|
|
// Teensy++ 2.0 3 (D3) 4 (D4)
|
|
// Arduino Leonardo 1 13
|
|
// Arduino Mega 18 48
|
|
|
|
// Serial1 on AVR @ 16 MHz minimum baud is 245
|
|
// Serial1 on Teensy 3.2 @ 96 MHz minimum baud is 733
|
|
|
|
// This example code is in the public domain.
|
|
|
|
byte sentbyte;
|
|
unsigned long prevmillis;
|
|
byte testbyte=0xF0;
|
|
|
|
void setup() {
|
|
delay(200);
|
|
Serial.begin(9600);
|
|
while (!Serial) ; // wait for Arduino Serial Monitor
|
|
Serial1.begin(mybaud); // connect a wire from TX1
|
|
altser.begin(mybaud); // to AltSoftSerial RX
|
|
Serial.println("AltSoftSerial Receive Test");
|
|
prevmillis = millis();
|
|
}
|
|
|
|
void loop() {
|
|
// transmit a test byte on Serial 1
|
|
if (millis() - prevmillis > 250) {
|
|
sentbyte = testbyte++;
|
|
Serial1.write(sentbyte);
|
|
prevmillis = millis();
|
|
}
|
|
// attempt to receive it by AltSoftSerial
|
|
if (altser.available() > 0) {
|
|
byte b = altser.read();
|
|
Serial.println(b);
|
|
if (b != sentbyte) Serial.println("***** ERROR *****");
|
|
}
|
|
}
|