From 17e1eb5ef240e33511d86d191b5da31ce8cdec2b Mon Sep 17 00:00:00 2001 From: Jens-Christian Skibakk Date: Fri, 23 May 2014 11:29:30 +0200 Subject: [PATCH] Fix idle level when initializing a inverted SoftwareSerial Previously, when SoftwareSerial was initialized, it would always be set to an idle level of HIGH, even when inverted logic was enabled. Once a byte is transmitted, the idle level gets correctly set to LOW instead. This commit makes sure that the idle level is correct directly after initialization already. This fixes #1361. --- libraries/SoftwareSerial/SoftwareSerial.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/SoftwareSerial/SoftwareSerial.cpp b/libraries/SoftwareSerial/SoftwareSerial.cpp index 64496febb..d1f6c9256 100755 --- a/libraries/SoftwareSerial/SoftwareSerial.cpp +++ b/libraries/SoftwareSerial/SoftwareSerial.cpp @@ -355,7 +355,7 @@ SoftwareSerial::~SoftwareSerial() void SoftwareSerial::setTX(uint8_t tx) { pinMode(tx, OUTPUT); - digitalWrite(tx, HIGH); + digitalWrite(tx, _inverse_logic ? LOW : HIGH); _transmitBitMask = digitalPinToBitMask(tx); uint8_t port = digitalPinToPort(tx); _transmitPortRegister = portOutputRegister(port);