@@ -581,10 +581,10 @@ bool HardwareSerial::setPins(int8_t rxPin, int8_t txPin, int8_t ctsPin, int8_t r
581
581
bool retCode = uartSetPins (_uart_nr, rxPin, txPin, ctsPin, rtsPin);
582
582
if (retCode) {
583
583
// detach previous attached UART pins if not set as same as before
584
- if (_rxPin >= 0 && _rxPin != rxPin) uartDetachPins (_uart_nr, _rxPin, -1 , -1 , -1 );
585
- if (_txPin >= 0 && _txPin != txPin) uartDetachPins (_uart_nr, -1 , _txPin, -1 , -1 );
586
- if (_ctsPin >= 0 && _ctsPin != ctsPin) uartDetachPins (_uart_nr, -1 , -1 , _ctsPin, -1 );
587
- if (_rtsPin >= 0 && _rtsPin != rtsPin) uartDetachPins (_uart_nr, -1 , -1 , -1 , _rtsPin);
584
+ if (_rxPin >= 0 && rxPin >= 0 && _rxPin != rxPin) uartDetachPins (_uart_nr, _rxPin, -1 , -1 , -1 );
585
+ if (_txPin >= 0 && txPin >= 0 && _txPin != txPin) uartDetachPins (_uart_nr, -1 , _txPin, -1 , -1 );
586
+ if (_ctsPin >= 0 && ctsPin >= 0 && _ctsPin != ctsPin) uartDetachPins (_uart_nr, -1 , -1 , _ctsPin, -1 );
587
+ if (_rtsPin >= 0 && rtsPin >= 0 && _rtsPin != rtsPin) uartDetachPins (_uart_nr, -1 , -1 , -1 , _rtsPin);
588
588
// set new pins for a future end() or a setPins()
589
589
_txPin = txPin >= 0 ? txPin : _txPin;
590
590
_rxPin = rxPin >= 0 ? rxPin : _rxPin;
0 commit comments