Skip to content

Strange values from uartGetBaudRate #649

Closed
@luc-github

Description

@luc-github

Hi,
ESP32 miss one function to get current baudrate unlike ESP8266
so I added it in HardwareSerial

uint32_t  HardwareSerial::baudRate()

{
	return uartGetBaudRate(_uart);
}

But I got inconsistent values when using it:

Setting 57000 give 57000 ->Ok
Setting 115200 give 115201 ->Different
Setting 230400 give 230423 ->Different
Setting 250000 give 250000 ->Ok

There is not such issue on ESP8266

here test sketch which display results at 115200

String result;
void setup() {
	result="Set 57000 get ";
	Serial.begin(57000);
	delay(1000);
	result+=String(Serial.baudRate());
	result+="\nSet 115200 get ";
	Serial.begin(115200);
	delay(1000);
	result+=String(Serial.baudRate());
	result+="\nSet 230400 get ";
	Serial.begin(230400);
	delay(1000);
	result+=String(Serial.baudRate());
	result+="\nSet 250000 get ";
	Serial.begin(250000);
	delay(1000);
	result+=String(Serial.baudRate());
	Serial.begin(115200);
}

void loop() {
	Serial.println(result);

	delay(3000);

}

Is that normal ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions