mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-17 21:35:44 +03:00
Fix smartport over softserial using override (#13540)
* Fix smartport over softserial * Constrain baudrateIndex does not work * Reapply 57600 for SmartPort * Use custom define for baudrate override * Return when baudrate requested is above set limit of softserial * Thanks ledvinap * Fix macro name * Cloud Build API does not allow define size > 32
This commit is contained in:
parent
8d1d8872d6
commit
92287b870d
1 changed files with 6 additions and 5 deletions
|
@ -346,13 +346,14 @@ bool isSerialConfigValid(serialConfig_t *serialConfigToCheck)
|
||||||
(portConfig->identifier == SERIAL_PORT_SOFTSERIAL2)) {
|
(portConfig->identifier == SERIAL_PORT_SOFTSERIAL2)) {
|
||||||
// Ensure MSP or serial RX is not enabled on soft serial ports
|
// Ensure MSP or serial RX is not enabled on soft serial ports
|
||||||
serialConfigToCheck->portConfigs[index].functionMask &= ~(FUNCTION_MSP | FUNCTION_RX_SERIAL);
|
serialConfigToCheck->portConfigs[index].functionMask &= ~(FUNCTION_MSP | FUNCTION_RX_SERIAL);
|
||||||
|
|
||||||
// Ensure that the baud rate on soft serial ports is limited to 19200
|
// Ensure that the baud rate on soft serial ports is limited to 19200
|
||||||
|
#ifndef USE_OVERRIDE_SOFTSERIAL_BAUDRATE
|
||||||
serialConfigToCheck->portConfigs[index].gps_baudrateIndex = constrain(portConfig->gps_baudrateIndex, BAUD_AUTO, BAUD_19200);
|
serialConfigToCheck->portConfigs[index].gps_baudrateIndex = constrain(portConfig->gps_baudrateIndex, BAUD_AUTO, BAUD_19200);
|
||||||
serialConfigToCheck->portConfigs[index].blackbox_baudrateIndex = constrain(portConfig->blackbox_baudrateIndex, BAUD_AUTO, BAUD_19200);
|
serialConfigToCheck->portConfigs[index].blackbox_baudrateIndex = constrain(portConfig->blackbox_baudrateIndex, BAUD_AUTO, BAUD_19200);
|
||||||
serialConfigToCheck->portConfigs[index].telemetry_baudrateIndex = constrain(portConfig->telemetry_baudrateIndex, BAUD_AUTO, BAUD_19200);
|
serialConfigToCheck->portConfigs[index].telemetry_baudrateIndex = constrain(portConfig->telemetry_baudrateIndex, BAUD_AUTO, BAUD_19200);
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
#endif // USE_SOFTSERIAL
|
||||||
|
|
||||||
if (portConfig->functionMask & FUNCTION_MSP) {
|
if (portConfig->functionMask & FUNCTION_MSP) {
|
||||||
mspPortCount++;
|
mspPortCount++;
|
||||||
|
@ -436,10 +437,10 @@ serialPort_t *openSerialPort(
|
||||||
|
|
||||||
serialPort_t *serialPort = NULL;
|
serialPort_t *serialPort = NULL;
|
||||||
|
|
||||||
#ifdef USE_SOFTSERIAL
|
#if defined(USE_SOFTSERIAL) && !defined(USE_OVERRIDE_SOFTSERIAL_BAUDRATE)
|
||||||
if (((identifier == SERIAL_PORT_SOFTSERIAL1) || (identifier == SERIAL_PORT_SOFTSERIAL2)) && (baudRate > 19200)) {
|
if (((identifier == SERIAL_PORT_SOFTSERIAL1) || (identifier == SERIAL_PORT_SOFTSERIAL2)) && (baudRate > 19200)) {
|
||||||
// Limit baud rate on soft serial ports
|
// Don't continue if baud rate requested is higher then the limit set on soft serial ports
|
||||||
baudRate = 19200;
|
return NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue