@@ -36,7 +36,7 @@ static const whal_Stm32h5_Rcc_PeriphClk g_periphClks[] = {
3636 {WHAL_STM32H563_GPIOD_CLOCK },
3737 {WHAL_STM32H563_GPIOC_CLOCK },
3838 {WHAL_STM32H563_GPIOG_CLOCK },
39- {WHAL_STM32H563_USART2_CLOCK },
39+ {WHAL_STM32H563_USART3_CLOCK },
4040 {WHAL_STM32H563_SPI1_CLOCK },
4141 {WHAL_STM32H563_RNG_CLOCK },
4242 {WHAL_STM32H563_SBS_CLOCK },
@@ -62,14 +62,14 @@ whal_Gpio g_whalGpio = {
6262 WHAL_STM32H5_GPIO_PORT_B , 0 , WHAL_STM32H5_GPIO_MODE_OUT ,
6363 WHAL_STM32H5_GPIO_OUTTYPE_PUSHPULL , WHAL_STM32H5_GPIO_SPEED_LOW ,
6464 WHAL_STM32H5_GPIO_PULL_NONE , 0 ),
65- /* USART2 TX on PD5 */
65+ /* USART3 TX on PD8, AF7 (ST-Link VCP) */
6666 [UART_TX_PIN ] = WHAL_STM32H5_GPIO_PIN (
67- WHAL_STM32H5_GPIO_PORT_D , 5 , WHAL_STM32H5_GPIO_MODE_ALTFN ,
67+ WHAL_STM32H5_GPIO_PORT_D , 8 , WHAL_STM32H5_GPIO_MODE_ALTFN ,
6868 WHAL_STM32H5_GPIO_OUTTYPE_PUSHPULL , WHAL_STM32H5_GPIO_SPEED_FAST ,
6969 WHAL_STM32H5_GPIO_PULL_UP , 7 ),
70- /* USART2 RX on PD6 */
70+ /* USART3 RX on PD9, AF7 (ST-Link VCP) */
7171 [UART_RX_PIN ] = WHAL_STM32H5_GPIO_PIN (
72- WHAL_STM32H5_GPIO_PORT_D , 6 , WHAL_STM32H5_GPIO_MODE_ALTFN ,
72+ WHAL_STM32H5_GPIO_PORT_D , 9 , WHAL_STM32H5_GPIO_MODE_ALTFN ,
7373 WHAL_STM32H5_GPIO_OUTTYPE_PUSHPULL , WHAL_STM32H5_GPIO_SPEED_FAST ,
7474 WHAL_STM32H5_GPIO_PULL_UP , 7 ),
7575 /* SPI1 SCK on PA5 */
@@ -156,7 +156,7 @@ whal_Timer g_whalTimer = {
156156
157157/* UART */
158158whal_Uart g_whalUart = {
159- .regmap = { WHAL_STM32H563_USART2_REGMAP },
159+ .regmap = { WHAL_STM32H563_USART3_REGMAP },
160160 /* .driver: direct API mapping */
161161
162162 .cfg = & (whal_Stm32h5_Uart_Cfg ) {
@@ -266,16 +266,26 @@ whal_Error Board_Init(void)
266266 * (volatile uint32_t * )FLASH_ACR_ADDR = FLASH_ACR_LATENCY_168MHZ ;
267267
268268 /* HSI 64 MHz -> PLL1 (HSI/8 * 63 / 3 = 168 MHz) -> SYSCLK = PLL1 */
269+
270+ /* RCC_CR.HSIDIV resets to /4 (16 MHz) on H5, not /1. Force it back to
271+ * /1 so the PLL sees 64 MHz; otherwise the divider chain below silently
272+ * lands on 42 MHz instead of 168 MHz. */
273+ err = whal_Stm32h5_Rcc_SetHsiDiv (& g_whalClock , 0 );
274+ if (err )
275+ return err ;
276+
269277 err = whal_Stm32h5_Rcc_EnableOsc (& g_whalClock ,
270278 & (whal_Stm32h5_Rcc_OscCfg ){WHAL_STM32H5_RCC_HSI_CFG });
271279 if (err )
272280 return err ;
281+
273282 err = whal_Stm32h5_Rcc_EnablePll1 (& g_whalClock , & (whal_Stm32h5_Rcc_PllCfg ){
274283 .clkSrc = WHAL_STM32H5_RCC_PLLCLK_SRC_HSI ,
275284 .m = 8 , .n = 62 , .p = 2 , .q = 2 , .r = 2 ,
276285 });
277286 if (err )
278287 return err ;
288+
279289 err = whal_Stm32h5_Rcc_SetSysClock (& g_whalClock , WHAL_STM32H5_RCC_SYSCLK_SRC_PLL1 );
280290 if (err )
281291 return err ;
0 commit comments