99class HardwareSerial :
public Stream {
107 unsigned char _rx_buffer[SERIAL_RX_BUFFER_SIZE];
108 unsigned char _tx_buffer[SERIAL_TX_BUFFER_SIZE];
113 HardwareSerial(uint32_t _rx, uint32_t _tx, uint32_t _rts = NUM_DIGITAL_PINS, uint32_t _cts = NUM_DIGITAL_PINS);
114 HardwareSerial(PinName _rx, PinName _tx, PinName _rts = NC, PinName _cts = NC);
115 HardwareSerial(
void *peripheral, HalfDuplexMode_t halfDuplex = HALF_DUPLEX_DISABLED);
116 HardwareSerial(uint32_t _rxtx);
117 HardwareSerial(PinName _rxtx);
118 void begin(
unsigned long baud)
120 begin(baud, SERIAL_8N1);
122 void begin(
unsigned long, uint8_t);
124 virtual int available(
void);
125 virtual int peek(
void);
126 virtual int read(
void);
127 int availableForWrite(
void);
128 virtual void flush();
129 void flush(uint32_t timeout);
130 virtual size_t write(uint8_t);
131 inline size_t write(
unsigned long n)
133 return write((uint8_t)n);
135 inline size_t write(
long n)
137 return write((uint8_t)n);
139 inline size_t write(
unsigned int n)
141 return write((uint8_t)n);
143 inline size_t write(
int n)
145 return write((uint8_t)n);
147 size_t write(
const uint8_t *buffer,
size_t size);
154 void setRx(uint32_t _rx);
155 void setTx(uint32_t _tx);
156 void setRx(PinName _rx);
157 void setTx(PinName _tx);
160 void setRts(uint32_t _rts);
161 void setCts(uint32_t _cts);
162 void setRtsCts(uint32_t _rts, uint32_t _cts);
163 void setRts(PinName _rts);
164 void setCts(PinName _cts);
165 void setRtsCts(PinName _rts, PinName _cts);
169 void setHalfDuplex(
void);
170 bool isHalfDuplex(
void)
const;
171 void enableHalfDuplexRx(
void);
173 friend class STM32LowPower;
176 static void _rx_complete_irq(serial_t *obj);
177 static int _tx_complete_irq(serial_t *obj);
179#if defined(HAL_UART_MODULE_ENABLED) && !defined(HAL_UART_MODULE_ONLY)
181 UART_HandleTypeDef *getHandle(
void)
183 return &(_serial.handle);
191 void init(PinName _rx, PinName _tx, PinName _rts = NC, PinName _cts = NC);
192 void configForLowPower(
void);