Merge pull request #269 from mgeramb/FixRP2040UARTPinHandling

Fix for RP2040 UART pin handling: Setting of uart pins moved setupUart
This commit is contained in:
thelsing 2024-01-02 15:20:37 +01:00 committed by GitHub
commit 4deead3342
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 29 deletions

View File

@ -10,21 +10,16 @@
#define KNX_SERIAL Serial1
#endif
#ifndef KNX_UART_RX_PIN
#define KNX_UART_RX_PIN -1
#endif
#ifndef KNX_UART_TX_PIN
#define KNX_UART_TX_PIN -1
#endif
Esp32Platform::Esp32Platform()
#ifndef KNX_NO_DEFAULT_UART
: ArduinoPlatform(&KNX_SERIAL)
#endif
{
#ifndef KNX_NO_DEFAULT_UART
knxUartPins(KNX_UART_RX_PIN, KNX_UART_TX_PIN);
#ifdef KNX_UART_RX_PIN
_rxPin = KNX_UART_RX_PIN;
#endif
#ifdef KNX_UART_TX_PIN
_txPin = KNX_UART_TX_PIN;
#endif
}

View File

@ -56,21 +56,16 @@ extern Wiznet5500lwIP KNX_NETIF;
#endif
#ifndef KNX_UART_RX_PIN
#define KNX_UART_RX_PIN UART_PIN_NOT_DEFINED
#endif
#ifndef KNX_UART_TX_PIN
#define KNX_UART_TX_PIN UART_PIN_NOT_DEFINED
#endif
RP2040ArduinoPlatform::RP2040ArduinoPlatform()
#ifndef KNX_NO_DEFAULT_UART
: ArduinoPlatform(&KNX_SERIAL)
#endif
{
#ifndef KNX_NO_DEFAULT_UART
knxUartPins(KNX_UART_RX_PIN, KNX_UART_TX_PIN);
#ifdef KNX_UART_RX_PIN
_rxPin = KNX_UART_RX_PIN;
#endif
#ifdef KNX_UART_TX_PIN
_txPin = KNX_UART_TX_PIN;
#endif
#ifndef USE_RP2040_EEPROM_EMULATION
_memoryType = Flash;
@ -86,14 +81,8 @@ RP2040ArduinoPlatform::RP2040ArduinoPlatform( HardwareSerial* s) : ArduinoPlatfo
void RP2040ArduinoPlatform::knxUartPins(pin_size_t rxPin, pin_size_t txPin)
{
SerialUART* serial = dynamic_cast<SerialUART*>(_knxSerial);
if(serial)
{
if (rxPin != UART_PIN_NOT_DEFINED)
serial->setRX(rxPin);
if (txPin != UART_PIN_NOT_DEFINED)
serial->setTX(txPin);
}
_rxPin = rxPin;
_txPin = txPin;
}
void RP2040ArduinoPlatform::setupUart()
@ -101,6 +90,10 @@ void RP2040ArduinoPlatform::setupUart()
SerialUART* serial = dynamic_cast<SerialUART*>(_knxSerial);
if(serial)
{
if (_rxPin != UART_PIN_NOT_DEFINED)
serial->setRX(_rxPin);
if (_txPin != UART_PIN_NOT_DEFINED)
serial->setTX(_txPin);
serial->setPollingMode();
}

View File

@ -128,6 +128,8 @@ public:
#endif
protected: IPAddress mcastaddr;
protected: uint16_t _port;
protected: pin_size_t _rxPin = UART_PIN_NOT_DEFINED;
protected: pin_size_t _txPin = UART_PIN_NOT_DEFINED;
#endif
};