diff --git a/Marlin/src/HAL/LPC1768/MarlinSerial.h b/Marlin/src/HAL/LPC1768/MarlinSerial.h index 808d19f8c52a..df79bc121b3e 100644 --- a/Marlin/src/HAL/LPC1768/MarlinSerial.h +++ b/Marlin/src/HAL/LPC1768/MarlinSerial.h @@ -21,6 +21,7 @@ */ #pragma once +#include #include #include @@ -42,7 +43,18 @@ class MarlinSerial : public HardwareSerial { public: - MarlinSerial(LPC_UART_TypeDef *UARTx) : HardwareSerial(UARTx) { } + MarlinSerial(LPC_UART_TypeDef *UARTx) : HardwareSerial(UARTx) { + // Fix no response if BAUDRATE > 250000 https://github.com/MarlinFirmware/Marlin/issues/22283 + if (UARTx == LPC_UART0) { + CLKPWR_SetPCLKDiv(CLKPWR_PCLKSEL_UART0, CLKPWR_PCLKSEL_CCLK_DIV_1); + } else if ((LPC_UART1_TypeDef *) UARTx == LPC_UART1) { + CLKPWR_SetPCLKDiv(CLKPWR_PCLKSEL_UART1, CLKPWR_PCLKSEL_CCLK_DIV_1); + } else if (UARTx == LPC_UART2) { + CLKPWR_SetPCLKDiv(CLKPWR_PCLKSEL_UART2, CLKPWR_PCLKSEL_CCLK_DIV_1); + } else if (UARTx == LPC_UART3) { + CLKPWR_SetPCLKDiv(CLKPWR_PCLKSEL_UART3, CLKPWR_PCLKSEL_CCLK_DIV_1); + } + } void end() {}