Skip to content

Commit a698f17

Browse files
committed
Set default pin used for 'Serial' instance (ex: ST-Link)
When Serialx instanciation, check if it is the generic 'Serial' then set Rx/Tx pins if defined else get the pins of the first peripheral occurence in PinMap Anyway, Rx/Tx pins could be changed later using Serialx.setRx/setTx methods before call the Serialx.begin() Signed-off-by: Frederic.Pillon <frederic.pillon@st.com>
1 parent 0672147 commit a698f17

File tree

18 files changed

+59
-29
lines changed

18 files changed

+59
-29
lines changed

cores/arduino/HardwareSerial.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,21 @@ HardwareSerial::HardwareSerial(PinName _rx, PinName _tx)
143143

144144
HardwareSerial::HardwareSerial(void* peripheral)
145145
{
146-
_serial.pin_rx = pinmap_pin(peripheral, PinMap_UART_RX);
147-
_serial.pin_tx = pinmap_pin(peripheral, PinMap_UART_TX);
146+
// If Serial is defined in variant set
147+
// the Rx/Tx pins for com port if defined
148+
#if defined(Serial) && defined(PIN_SERIAL_RX) && defined(PIN_SERIAL_TX)
149+
if (this == &Serial)
150+
{
151+
setRx(PIN_SERIAL_RX);
152+
setTx(PIN_SERIAL_TX);
153+
}
154+
else
155+
#endif
156+
// else get the pins of the first peripheral occurence in PinMap
157+
{
158+
_serial.pin_rx = pinmap_pin(peripheral, PinMap_UART_RX);
159+
_serial.pin_tx = pinmap_pin(peripheral, PinMap_UART_TX);
160+
}
148161
init();
149162
}
150163

variants/DISCO_F100RB/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,8 @@ enum {
155155
// UART Definitions
156156
#define DEBUG_UART ((USART_TypeDef *) USART2)
157157

158-
// Serial Pin Firmata
158+
// Default pin used for 'Serial' instance (ex: ST-Link)
159+
// Mandatory for Firmata
159160
#define PIN_SERIAL_RX 8
160161
#define PIN_SERIAL_TX 7
161162

variants/DISCO_F407VG/variant.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,10 @@ enum {
184184
#define UART_EMUL_RX PE_9
185185
#define UART_EMUL_TX PE_11
186186

187-
// Serial Pin Firmata
188-
#define PIN_SERIAL_RX 42
189-
#define PIN_SERIAL_TX 3
187+
// Default pin used for 'Serial' instance (ex: ST-Link)
188+
// Mandatory for Firmata
189+
#define PIN_SERIAL_RX PA3
190+
#define PIN_SERIAL_TX PA2
190191

191192
#ifdef __cplusplus
192193
} // extern "C"

variants/DISCO_F746NG/variant.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,10 @@ enum {
112112
// UART Definitions
113113
#define DEBUG_UART ((USART_TypeDef *) USART1)
114114

115-
// Serial Pin Firmata
116-
#define PIN_SERIAL_RX 23
117-
#define PIN_SERIAL_TX 24
115+
// Default pin used for 'Serial' instance (ex: ST-Link)
116+
// Mandatory for Firmata
117+
#define PIN_SERIAL_RX PB7
118+
#define PIN_SERIAL_TX PA9
118119

119120
#ifdef __cplusplus
120121
} // extern "C"

variants/DISCO_L475VG_IOT/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,8 @@ enum {
182182
// UART Definitions
183183
#define DEBUG_UART ((USART_TypeDef *) USART1)
184184

185-
// Serial Pin Firmata
185+
// Default pin used for 'Serial' instance (ex: ST-Link)
186+
// Mandatory for Firmata
186187
#define PIN_SERIAL_RX 0
187188
#define PIN_SERIAL_TX 1
188189

variants/NUCLEO_F030R8/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,8 @@ enum {
153153
// UART Definitions
154154
#define DEBUG_UART ((USART_TypeDef *) USART2)
155155

156-
// Serial Pin Firmata
156+
// Default pin used for 'Serial' instance (ex: ST-Link)
157+
// Mandatory for Firmata
157158
#define PIN_SERIAL_RX 0
158159
#define PIN_SERIAL_TX 1
159160

variants/NUCLEO_F091RC/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,8 @@ enum {
156156
#define UART_EMUL_RX PB_14
157157
#define UART_EMUL_TX PB_13
158158

159-
// Serial Pin Firmata
159+
// Default pin used for 'Serial' instance (ex: ST-Link)
160+
// Mandatory for Firmata
160161
#define PIN_SERIAL_RX 0
161162
#define PIN_SERIAL_TX 1
162163

variants/NUCLEO_F103RB/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,8 @@ enum {
152152
// UART Definitions
153153
#define DEBUG_UART ((USART_TypeDef *) USART2)
154154

155-
// Serial Pin Firmata
155+
// Default pin used for 'Serial' instance (ex: ST-Link)
156+
// Mandatory for Firmata
156157
#define PIN_SERIAL_RX 0
157158
#define PIN_SERIAL_TX 1
158159

variants/NUCLEO_F207ZG/variant.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,10 @@ enum {
197197
// UART Definitions
198198
#define DEBUG_UART ((USART_TypeDef *) USART3)
199199

200-
// Serial Pin Firmata
201-
#define PIN_SERIAL_RX 76
202-
#define PIN_SERIAL_TX 77
200+
// Default pin used for 'Serial' instance (ex: ST-Link)
201+
// Mandatory for Firmata
202+
#define PIN_SERIAL_RX PD9
203+
#define PIN_SERIAL_TX PD8
203204

204205
#ifdef __cplusplus
205206
} // extern "C"

variants/NUCLEO_F303RE/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,8 @@ enum {
156156
#define UART_EMUL_RX PC_1
157157
#define UART_EMUL_TX PC_3
158158

159-
// Serial Pin Firmata
159+
// Default pin used for 'Serial' instance (ex: ST-Link)
160+
// Mandatory for Firmata
160161
#define PIN_SERIAL_RX 0
161162
#define PIN_SERIAL_TX 1
162163

variants/NUCLEO_F401RE/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ enum {
157157
#define UART_EMUL_RX PC_1
158158
#define UART_EMUL_TX PC_3
159159

160-
// Serial Pin Firmata
160+
// Default pin used for 'Serial' instance (ex: ST-Link)
161+
// Mandatory for Firmata
161162
#define PIN_SERIAL_RX 0
162163
#define PIN_SERIAL_TX 1
163164

variants/NUCLEO_F411RE/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,8 @@ enum {
153153
// UART Definitions
154154
#define DEBUG_UART ((USART_TypeDef *) USART2)
155155

156-
// Serial Pin Firmata
156+
// Default pin used for 'Serial' instance (ex: ST-Link)
157+
// Mandatory for Firmata
157158
#define PIN_SERIAL_RX 0
158159
#define PIN_SERIAL_TX 1
159160

variants/NUCLEO_F429ZI/variant.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,10 @@ enum {
191191
#define UART_EMUL_RX PF_15
192192
#define UART_EMUL_TX PE_13
193193

194-
// Serial Pin Firmata
195-
#define PIN_SERIAL_RX 76
196-
#define PIN_SERIAL_TX 77
194+
// Serial pin used for console (ex: stlink)
195+
// Rerquired by Firmata
196+
#define PIN_SERIAL_RX PD9
197+
#define PIN_SERIAL_TX PD8
197198

198199
#ifdef __cplusplus
199200
} // extern "C"

variants/NUCLEO_L053R8/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,8 @@ enum {
152152
// UART Definitions
153153
#define DEBUG_UART ((USART_TypeDef *) USART2)
154154

155-
// Serial Pin Firmata
155+
// Default pin used for 'Serial' instance (ex: ST-Link)
156+
// Mandatory for Firmata
156157
#define PIN_SERIAL_RX 0
157158
#define PIN_SERIAL_TX 1
158159

variants/NUCLEO_L152RE/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ enum {
157157
// UART Definitions
158158
#define DEBUG_UART ((USART_TypeDef *) USART2)
159159

160-
// Serial Pin Firmata
160+
// Default pin used for 'Serial' instance (ex: ST-Link)
161+
// Mandatory for Firmata
161162
#define PIN_SERIAL_RX 0
162163
#define PIN_SERIAL_TX 1
163164

variants/NUCLEO_L432KC/variant.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,10 @@ enum {
106106
// UART Definitions
107107
#define DEBUG_UART ((USART_TypeDef *) USART2)
108108

109-
// Serial Pin Firmata
110-
#define PIN_SERIAL_RX 22
111-
#define PIN_SERIAL_TX 21
109+
// Default pin used for 'Serial' instance (ex: ST-Link)
110+
// Mandatory for Firmata
111+
#define PIN_SERIAL_RX PA15
112+
#define PIN_SERIAL_TX PA2
112113

113114
#ifdef __cplusplus
114115
} // extern "C"

variants/NUCLEO_L476RG/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,8 @@ enum {
156156
#define UART_EMUL_RX PB_13
157157
#define UART_EMUL_TX PB_14
158158

159-
// Serial Pin Firmata
159+
// Default pin used for 'Serial' instance (ex: ST-Link)
160+
// Mandatory for Firmata
160161
#define PIN_SERIAL_RX 0
161162
#define PIN_SERIAL_TX 1
162163

variants/board_template/variant.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ enum {
113113
//#define UART_EMUL_RX PX_n // PinName used for RX
114114
//#define UART_EMUL_TX PX_n // PinName used for TX
115115

116-
// Serial Pin Firmata
116+
// Default pin used for 'Serial' instance (ex: ST-Link)
117+
// Mandatory for Firmata
117118
#define PIN_SERIAL_RX Dx
118119
#define PIN_SERIAL_TX Dx
119120

0 commit comments

Comments
 (0)