@@ -313,6 +313,11 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in
313
313
// map logical pins to GPIO numbers
314
314
rxPin = digitalPinToGPIONumber (rxPin);
315
315
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;
316
321
317
322
HSERIAL_MUTEX_LOCK ();
318
323
// 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
343
348
// do not change RX2/TX2 if it has already been set before
344
349
#ifdef RX2
345
350
rxPin = _rxPin < 0 ? (int8_t )RX2 : _rxPin;
346
- #else
347
- rxPin = _rxPin;
348
351
#endif
349
352
#ifdef TX2
350
353
txPin = _txPin < 0 ? (int8_t )TX2 : _txPin;
351
- #else
352
- txPin = _txPin;
353
354
#endif
354
355
}
355
356
break ;
@@ -360,13 +361,9 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in
360
361
// do not change RX2/TX2 if it has already been set before
361
362
#ifdef RX3
362
363
rxPin = _rxPin < 0 ? (int8_t )RX3 : _rxPin;
363
- #else
364
- rxPin = _rxPin;
365
364
#endif
366
365
#ifdef TX3
367
366
txPin = _txPin < 0 ? (int8_t )TX3 : _txPin;
368
- #else
369
- txPin = _txPin;
370
367
#endif
371
368
}
372
369
break ;
@@ -377,13 +374,9 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in
377
374
// do not change RX2/TX2 if it has already been set before
378
375
#ifdef RX4
379
376
rxPin = _rxPin < 0 ? (int8_t )RX4 : _rxPin;
380
- #else
381
- rxPin = _rxPin;
382
377
#endif
383
378
#ifdef TX4
384
379
txPin = _txPin < 0 ? (int8_t )TX4 : _txPin;
385
- #else
386
- txPin = _txPin;
387
380
#endif
388
381
}
389
382
break ;
0 commit comments