le but est de tester une relation half duplex sur un fil entre 2 uart
une résistance de l'un ou l'autre kOhms est soudée entre les broches 18 et 5
ça, ça marche
// de l'uart 1 (pin 18) vers l'uart 2 (pin 5)
//include <HardwareSerial.h>
HardwareSerial serial_1(1);
HardwareSerial serial_2(2);
volatile uint8_t randm;
void setup() {
Serial.begin(115200);
}
void loop() {
// de l'uart 1 (pin 18) vers l'uart 2 (pin 5)
delay(1000);
serial_1.begin(9600, SERIAL_8N1, 19, 18); // baud speed, UART mode, RX pin, TX pin
serial_2.begin(9600, SERIAL_8N1, 5, 17);
//Write something like that
randm = rand();
Serial.print("rand 1->2 "); Serial.print(randm);
serial_1.write(randm);
delay(200);
while (serial_2.available() ) {
volatile uint8_t rx_serial_2 = serial_2.read();
Serial.print(" rx_serial_2 "); Serial.println(rx_serial_2);
// Do something
}
}
ça, ça marche aussi
// de l'uart 2 (pin 5) vers l'uart 1 (pin 18)
//include <HardwareSerial.h>
HardwareSerial serial_1(1);
HardwareSerial serial_2(2);
volatile uint8_t randm;
void setup() {
Serial.begin(115200);
}
void loop() {
// de l'uart 2 (pin 5) vers l'uart 1 (pin 18)
delay(1000);
serial_1.begin(9600, SERIAL_8N1, 18, 19); // baud speed, UART mode, RX pin, TX pin
serial_2.begin(9600, SERIAL_8N1, 17, 5);
randm = rand();
Serial.print("rand 2->1 "); Serial.print(randm);
serial_2.write(randm);
delay(200);
while (serial_1.available() ) {
volatile uint8_t rx_serial_1 = serial_1.read();
Serial.print(" rx_serial_1 "); Serial.println(rx_serial_1);
// Do something
}
}
mais ça, ça marche pas
// de l'uart 1 (pin 18) vers l'uart 2 (pin 5)
et PAR LA SUITE
// de l'uart 2 (pin 5) vers l'uart 1 (pin 18)
//include <HardwareSerial.h>
HardwareSerial serial_1(1);
HardwareSerial serial_2(2);
volatile uint8_t randm;
void setup() {
Serial.begin(115200);
}
void loop() {
// de l'uart 1 (pin 18) vers l'uart 2 (pin 5)
delay(1000);
serial_1.begin(9600, SERIAL_8N1, 19, 18); // baud speed, UART mode, RX pin, TX pin
serial_2.begin(9600, SERIAL_8N1, 5, 17);
//Write something like that
randm = rand();
Serial.print("rand 1->2 "); Serial.print(randm);
serial_1.write(randm);
delay(200);
while (serial_2.available() ) {
volatile uint8_t rx_serial_2 = serial_2.read();
Serial.print(" rx_serial_2 "); Serial.println(rx_serial_2);
// Do something
}
// de l'uart 2 (pin 5) vers l'uart 1 (pin 18)
delay(1000);
serial_1.begin(9600, SERIAL_8N1, 18, 19); // baud speed, UART mode, RX pin, TX pin
serial_2.begin(9600, SERIAL_8N1, 17, 5);
randm = rand();
Serial.print("rand 2->1 "); Serial.print(randm);
serial_2.write(randm);
delay(200);
while (serial_1.available() ) {
volatile uint8_t rx_serial_1 = serial_1.read();
Serial.print(" rx_serial_1 "); Serial.println(rx_serial_1);
// Do something
}
}
ça serait quoi le souci ?