From 466aef095c55d42af7f50656b7468a8d01cadf63 Mon Sep 17 00:00:00 2001 From: giulcioffi Date: Mon, 2 May 2022 11:19:22 +0200 Subject: [PATCH 1/2] Add pin configuration according to default core defines --- src/RS485.cpp | 4 ++++ src/RS485.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/RS485.cpp b/src/RS485.cpp index ba6e80f..96ec163 100644 --- a/src/RS485.cpp +++ b/src/RS485.cpp @@ -186,4 +186,8 @@ void RS485Class::setDelays(int predelay, int postdelay) _postdelay = postdelay; } +#ifdef RS285_SERIAL_PORT +RS485Class RS485(RS285_SERIAL_PORT, RS485_DEFAULT_TX_PIN, RS485_DEFAULT_DE_PIN, RS485_DEFAULT_RE_PIN); +#else RS485Class RS485(SERIAL_PORT_HARDWARE, RS485_DEFAULT_TX_PIN, RS485_DEFAULT_DE_PIN, RS485_DEFAULT_RE_PIN); +#endif diff --git a/src/RS485.h b/src/RS485.h index 3f9fdff..ac59cf3 100644 --- a/src/RS485.h +++ b/src/RS485.h @@ -22,11 +22,13 @@ #include +#ifndef RS485_DEFAULT_TX_PIN #ifdef PIN_SERIAL1_TX #define RS485_DEFAULT_TX_PIN PIN_SERIAL1_TX #else #define RS485_DEFAULT_TX_PIN 1 #endif +#endif #ifdef __AVR__ #define RS485_DEFAULT_DE_PIN 2 @@ -35,9 +37,11 @@ #define RS485_DEFAULT_DE_PIN A1 #define RS485_DEFAULT_RE_PIN A0 #else +#ifndef RS485_DEFAULT_DE_PIN #define RS485_DEFAULT_DE_PIN A6 #define RS485_DEFAULT_RE_PIN A5 #endif +#endif #define RS485_DEFAULT_PRE_DELAY 50 From 821652961162d8352dd53ce4c66036be3359625a Mon Sep 17 00:00:00 2001 From: giulcioffi Date: Wed, 4 May 2022 11:39:57 +0200 Subject: [PATCH 2/2] Add constructor with PinName types for mbed boards --- src/RS485.cpp | 16 ++++++++++++++-- src/RS485.h | 3 +++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/RS485.cpp b/src/RS485.cpp index 96ec163..05bdcbb 100644 --- a/src/RS485.cpp +++ b/src/RS485.cpp @@ -19,6 +19,18 @@ #include "RS485.h" +#ifdef __MBED__ +#include "pinDefinitions.h" +RS485Class::RS485Class(HardwareSerial& hwSerial, PinName txPin, PinName dePin, PinName rePin) : + _serial(&hwSerial), + _txPin(PinNameToIndex(txPin)), + _dePin(PinNameToIndex(dePin)), + _rePin(PinNameToIndex(rePin)), + _transmisionBegun(false) +{ +} +#endif + RS485Class::RS485Class(HardwareSerial& hwSerial, int txPin, int dePin, int rePin) : _serial(&hwSerial), _txPin(txPin), @@ -186,8 +198,8 @@ void RS485Class::setDelays(int predelay, int postdelay) _postdelay = postdelay; } -#ifdef RS285_SERIAL_PORT -RS485Class RS485(RS285_SERIAL_PORT, RS485_DEFAULT_TX_PIN, RS485_DEFAULT_DE_PIN, RS485_DEFAULT_RE_PIN); +#ifdef RS485_SERIAL_PORT +RS485Class RS485(RS485_SERIAL_PORT, RS485_DEFAULT_TX_PIN, RS485_DEFAULT_DE_PIN, RS485_DEFAULT_RE_PIN); #else RS485Class RS485(SERIAL_PORT_HARDWARE, RS485_DEFAULT_TX_PIN, RS485_DEFAULT_DE_PIN, RS485_DEFAULT_RE_PIN); #endif diff --git a/src/RS485.h b/src/RS485.h index ac59cf3..cc298b2 100644 --- a/src/RS485.h +++ b/src/RS485.h @@ -49,6 +49,9 @@ class RS485Class : public Stream { public: +#ifdef __MBED__ + RS485Class(HardwareSerial& hwSerial, PinName txPin, PinName dePin, PinName rePin); +#endif RS485Class(HardwareSerial& hwSerial, int txPin, int dePin, int rePin); virtual void begin(unsigned long baudrate);