@@ -304,12 +304,6 @@ int serial_writable(serial_t *obj) {
304
304
305
305
void serial_clear (serial_t * obj ) {
306
306
obj -> uart -> DR = 0x00 ;
307
- /**
308
- obj->uart->FCR = 1 << 0 // FIFO Enable - 0 = Disables, 1 = Enabled
309
- | 1 << 1 // rx FIFO reset
310
- | 1 << 2 // tx FIFO reset
311
- | 0 << 6; // interrupt depth
312
- **/
313
307
}
314
308
315
309
void serial_pinout_tx (PinName tx ) {
@@ -332,25 +326,35 @@ void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, Pi
332
326
switch (type ) {
333
327
case FlowControlRTS :
334
328
pinmap_pinout (rxflow , PinMap_UART_RTS );
329
+ uart_data [obj -> index ].sw_rts .pin = rxflow ;
330
+ uart_data [obj -> index ].sw_cts .pin = NC ;
335
331
MAP_UARTFlowControlSet (obj -> baseAddr , UART_FLOWCONTROL_RX );
336
332
break ;
337
333
338
334
case FlowControlCTS :
339
335
pinmap_pinout (txflow , PinMap_UART_CTS );
336
+ uart_data [obj -> index ].sw_rts .pin = NC ;
337
+ uart_data [obj -> index ].sw_cts .pin = txflow ;
340
338
MAP_UARTFlowControlSet (obj -> baseAddr , UART_FLOWCONTROL_TX );
341
339
break ;
342
340
343
341
case FlowControlRTSCTS :
344
342
pinmap_pinout (rxflow , PinMap_UART_RTS );
345
343
pinmap_pinout (txflow , PinMap_UART_CTS );
344
+ uart_data [obj -> index ].sw_rts .pin = rxflow ;
345
+ uart_data [obj -> index ].sw_cts .pin = txflow ;
346
346
MAP_UARTFlowControlSet (obj -> baseAddr , UART_FLOWCONTROL_TX | UART_FLOWCONTROL_RX );
347
347
break ;
348
348
349
349
case FlowControlNone :
350
+ uart_data [obj -> index ].sw_rts .pin = NC ;
351
+ uart_data [obj -> index ].sw_cts .pin = NC ;
350
352
MAP_UARTFlowControlSet (obj -> baseAddr , UART_FLOWCONTROL_NONE );
351
353
break ;
352
354
353
355
default :
356
+ uart_data [obj -> index ].sw_rts .pin = NC ;
357
+ uart_data [obj -> index ].sw_cts .pin = NC ;
354
358
MAP_UARTFlowControlSet (obj -> baseAddr , UART_FLOWCONTROL_NONE );
355
359
break ;
356
360
}
0 commit comments