mirror of https://github.com/ARMmbed/mbed-os.git
Retain flow control state
parent
37b54ca44b
commit
31babca1da
|
@ -344,6 +344,9 @@ protected:
|
|||
bool _tx_enabled;
|
||||
const PinName _tx_pin;
|
||||
const PinName _rx_pin;
|
||||
Flow _flow_type;
|
||||
PinName _flow1;
|
||||
PinName _flow2;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -30,7 +30,15 @@ SerialBase::SerialBase(PinName tx, PinName rx, int baud) :
|
|||
_rx_callback(NULL), _tx_asynch_set(false),
|
||||
_rx_asynch_set(false),
|
||||
#endif
|
||||
_serial(), _baud(baud), _rx_enabled(true), _tx_enabled(true), _tx_pin(tx), _rx_pin(rx)
|
||||
_serial(),
|
||||
_baud(baud),
|
||||
_rx_enabled(true),
|
||||
_tx_enabled(true),
|
||||
_tx_pin(tx),
|
||||
_rx_pin(rx),
|
||||
_flow_type(Disabled),
|
||||
_flow1(NC),
|
||||
_flow2(NC)
|
||||
{
|
||||
// No lock needed in the constructor
|
||||
|
||||
|
@ -121,6 +129,7 @@ int SerialBase::_base_putc(int c)
|
|||
void SerialBase::_init()
|
||||
{
|
||||
serial_init(&_serial, _tx_pin, _rx_pin);
|
||||
set_flow_control(_flow_type, _flow1, _flow2);
|
||||
serial_baud(&_serial, _baud);
|
||||
serial_irq_handler(&_serial, SerialBase::_irq_handler, (uint32_t)this);
|
||||
}
|
||||
|
|
|
@ -77,6 +77,9 @@ void UARTSerial::set_format(int bits, Parity parity, int stop_bits)
|
|||
void UARTSerial::set_flow_control(Flow type, PinName flow1, PinName flow2)
|
||||
{
|
||||
api_lock();
|
||||
_flow_type = type;
|
||||
_flow1 = flow1;
|
||||
_flow2 = flow2;
|
||||
SerialBase::set_flow_control(type, flow1, flow2);
|
||||
api_unlock();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue