File tree 1 file changed +7
-8
lines changed
libraries/SoftwareSerial/src
1 file changed +7
-8
lines changed Original file line number Diff line number Diff line change @@ -227,15 +227,15 @@ inline void SoftwareSerial::send()
227
227
tx_tick_cnt = OVERSAMPLE; // Wait OVERSAMPLE tick to send next bit
228
228
} else { // Transmission finished
229
229
tx_tick_cnt = 1 ;
230
- if (_output_pending || !(_half_duplex && active_listener == this ) ) {
230
+ if (_output_pending) {
231
231
active_out = nullptr ;
232
- rx_bit_cnt = -1 ; // rx_bit_cnt = -1 : waiting for start bit
233
- rx_tick_cnt = 2 ; // 2 : next interrupt will be discarded. 2 interrupts required to consider RX pin level
234
- active_in = this ;
235
- // When in half-duplex mode, we wait for HALFDUPLEX_SWITCH_DELAY bit-periods after the byte has
232
+
233
+ // When in half-duplex mode, wait for HALFDUPLEX_SWITCH_DELAY bit-periods after the byte has
236
234
// been transmitted before allowing the switch to RX mode
237
235
} else if (tx_bit_cnt > 10 + OVERSAMPLE * HALFDUPLEX_SWITCH_DELAY) {
238
- pinMode (_receivePin, _inverse_logic ? INPUT_PULLDOWN : INPUT_PULLUP); // pullup for normal logic!
236
+ if (_half_duplex && active_listener == this ) {
237
+ setRXTX (true );
238
+ }
239
239
active_out = nullptr ;
240
240
}
241
241
}
@@ -348,11 +348,10 @@ void SoftwareSerial::begin(long speed)
348
348
if (!_half_duplex) {
349
349
setTX ();
350
350
setRX ();
351
+ listen ();
351
352
} else {
352
353
setTX ();
353
354
}
354
-
355
- listen ();
356
355
}
357
356
358
357
void SoftwareSerial::end ()
You can’t perform that action at this time.
0 commit comments