summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorhathach <[email protected]>2023-10-31 11:39:20 +0700
committerhathach <[email protected]>2023-10-31 11:39:20 +0700
commit6ab7875aab3e677fb3bafa8595b7eb90598c2d58 (patch)
tree6579424adf673e6b60a8b8152c4c904984cd98d4 /hw
parentdb3ff4b3527b9b81d381ecc21a74e76e81b2a8e9 (diff)
uart working on u5a5
Diffstat (limited to 'hw')
-rw-r--r--hw/bsp/stm32u5/boards/stm32u5a5nucleo/board.h28
-rw-r--r--hw/bsp/stm32u5/family.c5
2 files changed, 19 insertions, 14 deletions
diff --git a/hw/bsp/stm32u5/boards/stm32u5a5nucleo/board.h b/hw/bsp/stm32u5/boards/stm32u5a5nucleo/board.h
index 1cc61d6bb..062fb807f 100644
--- a/hw/bsp/stm32u5/boards/stm32u5a5nucleo/board.h
+++ b/hw/bsp/stm32u5/boards/stm32u5a5nucleo/board.h
@@ -43,12 +43,12 @@ extern "C"
#define BUTTON_STATE_ACTIVE 1
// UART Enable for STLink VCOM
-#define UART_DEV LPUART1
-#define UART_CLK_EN __HAL_RCC_LPUART1_CLK_ENABLE
-#define UART_GPIO_PORT GPIOG
-#define UART_GPIO_AF GPIO_AF8_LPUART1
-#define UART_TX_PIN GPIO_PIN_7
-#define UART_RX_PIN GPIO_PIN_8
+#define UART_DEV USART1
+#define UART_CLK_EN __HAL_RCC_USART1_CLK_ENABLE
+#define UART_GPIO_PORT GPIOA
+#define UART_GPIO_AF GPIO_AF7_USART1
+#define UART_TX_PIN GPIO_PIN_9
+#define UART_RX_PIN GPIO_PIN_10
//--------------------------------------------------------------------+
// RCC Clock
@@ -103,16 +103,24 @@ static void SystemClock_Config(void) {
// USB Clock
__HAL_RCC_SYSCFG_CLK_ENABLE();
- RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
- PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USBPHY;
- PeriphClkInit.UsbPhyClockSelection = RCC_USBPHYCLKSOURCE_HSE;
- if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) {
+ RCC_PeriphCLKInitTypeDef usb_clk_init = { 0};
+ usb_clk_init.PeriphClockSelection = RCC_PERIPHCLK_USBPHY;
+ usb_clk_init.UsbPhyClockSelection = RCC_USBPHYCLKSOURCE_HSE;
+ if (HAL_RCCEx_PeriphCLKConfig(&usb_clk_init) != HAL_OK) {
Error_Handler();
}
/** Set the OTG PHY reference clock selection
*/
HAL_SYSCFG_SetOTGPHYReferenceClockSelection(SYSCFG_OTG_HS_PHY_CLK_SELECT_1);
+
+ // USART clock
+ RCC_PeriphCLKInitTypeDef uart_clk_init = { 0};
+ uart_clk_init.PeriphClockSelection = RCC_PERIPHCLK_USART1;
+ uart_clk_init.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
+ if (HAL_RCCEx_PeriphCLKConfig(&uart_clk_init) != HAL_OK) {
+ Error_Handler();
+ }
}
static void SystemPower_Config(void) {
diff --git a/hw/bsp/stm32u5/family.c b/hw/bsp/stm32u5/family.c
index 94294b25d..dd22b7d45 100644
--- a/hw/bsp/stm32u5/family.c
+++ b/hw/bsp/stm32u5/family.c
@@ -106,7 +106,7 @@ void board_init(void) {
GPIO_InitStruct.Pin = UART_TX_PIN | UART_RX_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
GPIO_InitStruct.Alternate = UART_GPIO_AF;
HAL_GPIO_Init(UART_GPIO_PORT, &GPIO_InitStruct);
@@ -121,7 +121,6 @@ void board_init(void) {
UartHandle.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
UartHandle.Init.ClockPrescaler = UART_PRESCALER_DIV1;
UartHandle.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
-
HAL_UART_Init(&UartHandle);
/* Configure USB GPIOs */
@@ -196,8 +195,6 @@ void board_init(void) {
USB_OTG_HS->GCCFG |= USB_OTG_GCCFG_VBVALEXTOEN;
USB_OTG_HS->GCCFG |= USB_OTG_GCCFG_VBVALOVAL;
#endif // USB_OTG_FS
-
-
}
//--------------------------------------------------------------------+