Skip to content
7 changes: 7 additions & 0 deletions cores/esp8266/HardwareSerial.cpp
Original file line number Diff line number Diff line change
@@ -180,6 +180,13 @@ size_t HardwareSerial::write(uint8_t c)
return 1;
}

int HardwareSerial::baudRate(void)
{
// Null pointer on _uart is checked by SDK
return uart_get_baudrate(_uart);
}


HardwareSerial::operator bool() const
{
return _uart != 0;
1 change: 1 addition & 0 deletions cores/esp8266/HardwareSerial.h
Original file line number Diff line number Diff line change
@@ -133,6 +133,7 @@ class HardwareSerial: public Stream
void setDebugOutput(bool);
bool isTxEnabled(void);
bool isRxEnabled(void);
int baudRate(void);

protected:
int _uart_nr;
15 changes: 15 additions & 0 deletions doc/reference.md
Original file line number Diff line number Diff line change
@@ -84,6 +84,21 @@ You also need to use `Serial.setDebugOutput(true)` to enable output from `printf
Both `Serial` and `Serial1` objects support 5, 6, 7, 8 data bits, odd (O), even (E), and no (N) parity, and 1 or 2 stop bits. To set the desired mode, call `Serial.begin(baudrate, SERIAL_8N1)`, `Serial.begin(baudrate, SERIAL_6E2)`, etc.
A new method has been implemented on both `Serial` and `Serial1` to get current baud rate setting. To get the current baud rate, call `Serial.baudRate()`, `Serial1.baudRate()`. Return a `int` of current speed. For example
```cpp
// Set Baud rate to 57600
Serial.begin(57600);
// Get current baud rate
int br = Serial.baudRate();
// Will print "Serial is 57600 bps"
Serial.printf("Serial is %d bps", br);
```

I've done this also for official ESP8266 [Software Serial](https://github.com/esp8266/Arduino/blob/master/doc/libraries.md#softwareserial) library, see this [pull request](https://github.com/plerup/espsoftwareserial/pull/22).
Note that this implementation is **only for ESP8266 based boards**, and will not works with other Arduino boards.

## Progmem

The Program memory features work much the same way as on a regular Arduino; placing read only data and strings in read only memory and freeing heap for your application.