summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUwe Bonnes <[email protected]>2020-06-21 17:55:44 +0200
committerUwe Bonnes <[email protected]>2020-06-30 11:01:44 +0200
commit4b7f848e1fee86e047cfbe2957701c02f1b5fdf2 (patch)
tree67cf6e7964c418a1fa404e409dc96d13111794d7
parentab75998316fe714675e1193f0a7c06a32387ebd6 (diff)
stm32h743nucleo: Enable Log via STLINK-VCP.
-rw-r--r--hw/bsp/stm32h743nucleo/board.mk4
-rw-r--r--hw/bsp/stm32h743nucleo/stm32h743nucleo.c34
-rw-r--r--hw/bsp/stm32h743nucleo/stm32h7xx_hal_conf.h3
3 files changed, 35 insertions, 6 deletions
diff --git a/hw/bsp/stm32h743nucleo/board.mk b/hw/bsp/stm32h743nucleo/board.mk
index 30e52dfcc..43a4999a4 100644
--- a/hw/bsp/stm32h743nucleo/board.mk
+++ b/hw/bsp/stm32h743nucleo/board.mk
@@ -9,7 +9,8 @@ CFLAGS += \
-DSTM32H743xx \
-DCFG_TUSB_MCU=OPT_MCU_STM32H7
-# mcu driver cause following warnings
+# suppress warning caused by vendor mcu driver
+CFLAGS += -Wno-error=maybe-uninitialized -Wno-error=cast-align
ST_HAL_DRIVER = hw/mcu/st/st_driver/STM32H7xx_HAL_Driver
ST_CMSIS = hw/mcu/st/st_driver/CMSIS/Device/ST/STM32H7xx
@@ -24,6 +25,7 @@ SRC_C += \
$(ST_HAL_DRIVER)/Src/stm32h7xx_hal_rcc.c \
$(ST_HAL_DRIVER)/Src/stm32h7xx_hal_rcc_ex.c \
$(ST_HAL_DRIVER)/Src/stm32h7xx_hal_gpio.c \
+ $(ST_HAL_DRIVER)/Src/stm32h7xx_hal_uart.c \
$(ST_HAL_DRIVER)/Src/stm32h7xx_hal_pwr_ex.c
SRC_S += \
diff --git a/hw/bsp/stm32h743nucleo/stm32h743nucleo.c b/hw/bsp/stm32h743nucleo/stm32h743nucleo.c
index bb768eb40..b4a723871 100644
--- a/hw/bsp/stm32h743nucleo/stm32h743nucleo.c
+++ b/hw/bsp/stm32h743nucleo/stm32h743nucleo.c
@@ -49,14 +49,22 @@ void OTG_FS_IRQHandler(void)
#define BUTTON_PIN GPIO_PIN_13
#define BUTTON_STATE_ACTIVE 1
+#define UARTx USART3
+#define UART_GPIO_PORT GPIOD
+#define UART_GPIO_AF GPIO_AF7_USART3
+#define UART_TX_PIN GPIO_PIN_8
+#define UART_RX_PIN GPIO_PIN_9
+
+UART_HandleTypeDef UartHandle;
+
// enable all LED, Button, Uart, USB clock
static void all_rcc_clk_enable(void)
{
__HAL_RCC_GPIOA_CLK_ENABLE(); // USB D+, D-
__HAL_RCC_GPIOB_CLK_ENABLE(); // LED
__HAL_RCC_GPIOC_CLK_ENABLE(); // Button
-// __HAL_RCC_GPIOD_CLK_ENABLE(); // Uart tx, rx
-// __HAL_RCC_USART3_CLK_ENABLE(); // Uart module
+ __HAL_RCC_GPIOD_CLK_ENABLE(); // Uart tx, rx
+ __HAL_RCC_USART3_CLK_ENABLE(); // Uart module
}
/* PWR, RCC, GPIO (All): AHB4 (D3 domain)
@@ -170,6 +178,24 @@ void board_init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(BUTTON_PORT, &GPIO_InitStruct);
+ // Uart
+ GPIO_InitStruct.Pin = UART_TX_PIN | UART_RX_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStruct.Alternate = UART_GPIO_AF;
+ HAL_GPIO_Init(UART_GPIO_PORT, &GPIO_InitStruct);
+
+ UartHandle.Instance = UARTx;
+ UartHandle.Init.BaudRate = CFG_BOARD_UART_BAUDRATE;
+ UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
+ UartHandle.Init.StopBits = UART_STOPBITS_1;
+ UartHandle.Init.Parity = UART_PARITY_NONE;
+ UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ UartHandle.Init.Mode = UART_MODE_TX_RX;
+ UartHandle.Init.OverSampling = UART_OVERSAMPLING_16;
+ HAL_UART_Init(&UartHandle);
+
// USB Pin Init
// PA9- VUSB, PA10- ID, PA11- DM, PA12- DP
@@ -226,8 +252,8 @@ int board_uart_read(uint8_t* buf, int len)
int board_uart_write(void const * buf, int len)
{
- (void) buf; (void) len;
- return 0;
+ HAL_UART_Transmit(&UartHandle, (uint8_t*) buf, len, 0xffff);
+ return len;
}
diff --git a/hw/bsp/stm32h743nucleo/stm32h7xx_hal_conf.h b/hw/bsp/stm32h743nucleo/stm32h7xx_hal_conf.h
index c58fdf75b..8548ca246 100644
--- a/hw/bsp/stm32h743nucleo/stm32h7xx_hal_conf.h
+++ b/hw/bsp/stm32h743nucleo/stm32h7xx_hal_conf.h
@@ -100,7 +100,7 @@
/* #define HAL_SRAM_MODULE_ENABLED */
/* #define HAL_SWPMI_MODULE_ENABLED */
/* #define HAL_TIM_MODULE_ENABLED */
-/* #define HAL_UART_MODULE_ENABLED */
+#define HAL_UART_MODULE_ENABLED */
/* #define HAL_USART_MODULE_ENABLED */
/* #define HAL_WWDG_MODULE_ENABLED */
@@ -211,6 +211,7 @@
#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
#define USE_HAL_SWPMI_REGISTER_CALLBACKS 0U /* SWPMI register callback disabled */
#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
+#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
/* ########################### Ethernet Configuration ######################### */