@@ -313,6 +313,11 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in
313313 // map logical pins to GPIO numbers
314314 rxPin = digitalPinToGPIONumber (rxPin);
315315 txPin = digitalPinToGPIONumber (txPin);
316+ int8_t _rxPin = uart_get_RxPin (_uart_nr);
317+ int8_t _txPin = uart_get_TxPin (_uart_nr);
318+
319+ rxPin = rxPin < 0 ? _rxPin : rxPin;
320+ txPin = txPin < 0 ? _txPin : txPin;
316321
317322 HSERIAL_MUTEX_LOCK ();
318323 // First Time or after end() --> set default Pins
@@ -343,13 +348,9 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in
343348 // do not change RX2/TX2 if it has already been set before
344349#ifdef RX2
345350 rxPin = _rxPin < 0 ? (int8_t )RX2 : _rxPin;
346- #else
347- rxPin = _rxPin;
348351#endif
349352#ifdef TX2
350353 txPin = _txPin < 0 ? (int8_t )TX2 : _txPin;
351- #else
352- txPin = _txPin;
353354#endif
354355 }
355356 break ;
@@ -360,13 +361,9 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in
360361 // do not change RX2/TX2 if it has already been set before
361362#ifdef RX3
362363 rxPin = _rxPin < 0 ? (int8_t )RX3 : _rxPin;
363- #else
364- rxPin = _rxPin;
365364#endif
366365#ifdef TX3
367366 txPin = _txPin < 0 ? (int8_t )TX3 : _txPin;
368- #else
369- txPin = _txPin;
370367#endif
371368 }
372369 break ;
@@ -377,13 +374,9 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in
377374 // do not change RX2/TX2 if it has already been set before
378375#ifdef RX4
379376 rxPin = _rxPin < 0 ? (int8_t )RX4 : _rxPin;
380- #else
381- rxPin = _rxPin;
382377#endif
383378#ifdef TX4
384379 txPin = _txPin < 0 ? (int8_t )TX4 : _txPin;
385- #else
386- txPin = _txPin;
387380#endif
388381 }
389382 break ;
0 commit comments