@@ -72,6 +72,16 @@ static SingletonPtr<PlatformMutex> _mutex;
72
72
73
73
#define FILE_HANDLE_RESERVED ((FileHandle*)0xFFFFFFFF )
74
74
75
+ /* *
76
+ * Macros for setting console flow control.
77
+ */
78
+ #define CONSOLE_FLOWCONTROL_RTS 1
79
+ #define CONSOLE_FLOWCONTROL_CTS 2
80
+ #define CONSOLE_FLOWCONTROL_RTSCTS 3
81
+ #define mbed_console_concat_ (x ) CONSOLE_FLOWCONTROL_##x
82
+ #define mbed_console_concat (x ) mbed_console_concat_(x)
83
+ #define CONSOLE_FLOWCONTROL mbed_console_concat (MBED_CONF_TARGET_CONSOLE_UART_FLOW_CONTROL)
84
+
75
85
using namespace mbed;
76
86
77
87
#if defined(__MICROLIB) && (__ARMCC_VERSION>5030000)
@@ -147,6 +157,13 @@ DirectSerial::DirectSerial(PinName tx, PinName rx, int baud) {
147
157
if (stdio_uart_inited) return ;
148
158
serial_init (&stdio_uart, tx, rx);
149
159
serial_baud (&stdio_uart, baud);
160
+ #if CONSOLE_FLOWCONTROL == CONSOLE_FLOWCONTROL_RTS
161
+ serial_set_flow_control (&stdio_uart, FlowControlRTS, STDIO_UART_RTS, NC);
162
+ #elif CONSOLE_FLOWCONTROL == CONSOLE_FLOWCONTROL_CTS
163
+ serial_set_flow_control (&stdio_uart, FlowControlCTS, NC, STDIO_UART_CTS);
164
+ #elif CONSOLE_FLOWCONTROL == CONSOLE_FLOWCONTROL_RTSCTS
165
+ serial_set_flow_control (&stdio_uart, FlowControlRTSCTS, STDIO_UART_RTS, STDIO_UART_CTS);
166
+ #endif
150
167
}
151
168
152
169
ssize_t DirectSerial::write (const void *buffer, size_t size) {
@@ -216,6 +233,13 @@ static FileHandle* default_console()
216
233
#if DEVICE_SERIAL
217
234
# if MBED_CONF_PLATFORM_STDIO_BUFFERED_SERIAL
218
235
static UARTSerial console (STDIO_UART_TX, STDIO_UART_RX, MBED_CONF_PLATFORM_STDIO_BAUD_RATE);
236
+ # if CONSOLE_FLOWCONTROL == CONSOLE_FLOWCONTROL_RTS
237
+ console.set_flow_control (SerialBase::RTS, STDIO_UART_RTS, NC);
238
+ # elif CONSOLE_FLOWCONTROL == CONSOLE_FLOWCONTROL_CTS
239
+ console.set_flow_control (SerialBase::CTS, NC, STDIO_UART_CTS);
240
+ # elif CONSOLE_FLOWCONTROL == CONSOLE_FLOWCONTROL_RTSCTS
241
+ console.set_flow_control (SerialBase::RTSCTS, STDIO_UART_RTS, STDIO_UART_CTS);
242
+ # endif
219
243
# else
220
244
static DirectSerial console (STDIO_UART_TX, STDIO_UART_RX, MBED_CONF_PLATFORM_STDIO_BAUD_RATE);
221
245
# endif
0 commit comments