mirror of
				https://github.com/thelsing/knx.git
				synced 2025-10-26 10:26:25 +01:00 
			
		
		
		
	Merge pull request #269 from mgeramb/FixRP2040UARTPinHandling
Fix for RP2040 UART pin handling: Setting of uart pins moved setupUart
This commit is contained in:
		
						commit
						4deead3342
					
				| @ -10,22 +10,17 @@ | ||||
| #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); | ||||
| #endif | ||||
|     #ifdef KNX_UART_RX_PIN | ||||
|     _rxPin = KNX_UART_RX_PIN; | ||||
|     #endif | ||||
|     #ifdef KNX_UART_TX_PIN | ||||
|     _txPin = KNX_UART_TX_PIN; | ||||
|     #endif | ||||
| } | ||||
| 
 | ||||
| Esp32Platform::Esp32Platform(HardwareSerial* s) : ArduinoPlatform(s) | ||||
|  | ||||
| @ -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(); | ||||
|     } | ||||
| 
 | ||||
|  | ||||
| @ -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 | ||||
| }; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user