diff --git a/bsp/stm32/stm32h750-artpi-h750/.config b/bsp/stm32/stm32h750-artpi-h750/.config
index 38d0bf68b82ba68d10a029352870f056189f758c..c31157512a59f984afef0f78b970a7d54c8defb9 100644
--- a/bsp/stm32/stm32h750-artpi-h750/.config
+++ b/bsp/stm32/stm32h750-artpi-h750/.config
@@ -115,7 +115,7 @@ CONFIG_RT_USING_DEVICE_IPC=y
CONFIG_RT_PIPE_BUFSZ=512
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
CONFIG_RT_USING_SERIAL=y
-CONFIG_RT_SERIAL_USING_DMA=y
+# CONFIG_RT_SERIAL_USING_DMA is not set
CONFIG_RT_SERIAL_RB_BUFSZ=64
# CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_HWTIMER is not set
@@ -442,7 +442,7 @@ CONFIG_SOC_SERIES_STM32H7=y
#
# Hardware Drivers Config
#
-CONFIG_SOC_STM32H750IB=y
+CONFIG_SOC_STM32H750XB=y
#
# Onboard Peripheral Drivers
@@ -454,7 +454,7 @@ CONFIG_SOC_STM32H750IB=y
#
CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
-CONFIG_BSP_USING_UART1=y
+CONFIG_BSP_USING_UART3=y
CONFIG_BSP_USING_UART4=y
# CONFIG_BSP_USING_SDIO is not set
# CONFIG_BSP_USING_CRC is not set
diff --git a/bsp/stm32/stm32h750-artpi-h750/README.md b/bsp/stm32/stm32h750-artpi-h750/README.md
index 6d736073b6d2e3728173c06993238ef236834969..fd7c920579de09328ec15137abfbd2cd06643a00 100644
--- a/bsp/stm32/stm32h750-artpi-h750/README.md
+++ b/bsp/stm32/stm32h750-artpi-h750/README.md
@@ -45,7 +45,7 @@ STM32H750 是RTTHREAD推出的一款基于 ARM Cortex-M7 内核的开发板,
| LCD RG888 | 待支持 | 显示屏接口 |
| **片上外设** | **支持情况** | **备注** |
| GPIO | 支持 | |
-| UART | 支持 | UART1 |
+| UART | 支持 | UART4 UART3 |
| SPI | 支持 | SPI |
| QSPI | 支持 | |
| | | |
diff --git a/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/Core/Src/stm32h7xx_hal_msp.c b/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/Core/Src/stm32h7xx_hal_msp.c
index 1e241b91607e3b8ea2f6ee55e5453a3da2e712a9..77a19bb14ba6bd767c9e63a6c3ba1b25ecfd82bc 100644
--- a/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/Core/Src/stm32h7xx_hal_msp.c
+++ b/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/Core/Src/stm32h7xx_hal_msp.c
@@ -113,6 +113,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
GPIO_InitStruct.Alternate = GPIO_AF8_UART4;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /* UART4 interrupt Init */
+ HAL_NVIC_SetPriority(UART4_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(UART4_IRQn);
/* USER CODE BEGIN UART4_MspInit 1 */
/* USER CODE END UART4_MspInit 1 */
@@ -147,6 +150,11 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+ /* USART3 interrupt Init */
+ HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(USART3_IRQn);
+
+ NVIC_EnableIRQ(USART3_IRQn);
/* USER CODE BEGIN USART3_MspInit 1 */
/* USER CODE END USART3_MspInit 1 */
@@ -178,6 +186,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0);
+ /* UART4 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(UART4_IRQn);
/* USER CODE BEGIN UART4_MspDeInit 1 */
/* USER CODE END UART4_MspDeInit 1 */
@@ -200,6 +210,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_11|GPIO_PIN_12);
+ /* USART3 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(USART3_IRQn);
/* USER CODE BEGIN USART3_MspDeInit 1 */
/* USER CODE END USART3_MspDeInit 1 */
diff --git a/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/Core/Src/stm32h7xx_it.c b/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/Core/Src/stm32h7xx_it.c
index 20d2455bb8b27210a6a42c6064a697f8d71cbb7d..01b01ae2060a95a2c48aaa5d22d963874efe368a 100644
--- a/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/Core/Src/stm32h7xx_it.c
+++ b/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/Core/Src/stm32h7xx_it.c
@@ -56,7 +56,8 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
-
+extern UART_HandleTypeDef huart4;
+extern UART_HandleTypeDef huart3;
/* USER CODE BEGIN EV */
/* USER CODE END EV */
@@ -197,6 +198,34 @@ void SysTick_Handler(void)
/* please refer to the startup file (startup_stm32h7xx.s). */
/******************************************************************************/
+/**
+ * @brief This function handles USART3 global interrupt.
+ */
+void USART3_IRQHandler(void)
+{
+ /* USER CODE BEGIN USART3_IRQn 0 */
+
+ /* USER CODE END USART3_IRQn 0 */
+ HAL_UART_IRQHandler(&huart3);
+ /* USER CODE BEGIN USART3_IRQn 1 */
+
+ /* USER CODE END USART3_IRQn 1 */
+}
+
+/**
+ * @brief This function handles UART4 global interrupt.
+ */
+void UART4_IRQHandler(void)
+{
+ /* USER CODE BEGIN UART4_IRQn 0 */
+
+ /* USER CODE END UART4_IRQn 0 */
+ HAL_UART_IRQHandler(&huart4);
+ /* USER CODE BEGIN UART4_IRQn 1 */
+
+ /* USER CODE END UART4_IRQn 1 */
+}
+
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
diff --git a/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/CubeMX_Config.ioc b/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/CubeMX_Config.ioc
index 068dfa869e7079d3527c2f059462246cd682f427..a71fd184025c3ca99ee3221cc6cdc411616ddca7 100644
--- a/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/CubeMX_Config.ioc
+++ b/bsp/stm32/stm32h750-artpi-h750/board/CubeMX_Config/CubeMX_Config.ioc
@@ -14,15 +14,16 @@ Mcu.Name=STM32H750XBHx
Mcu.Package=TFBGA240
Mcu.Pin0=PI9
Mcu.Pin1=PI8
-Mcu.Pin2=PH1-OSC_OUT (PH1)
-Mcu.Pin3=PH0-OSC_IN (PH0)
-Mcu.Pin4=PA0
-Mcu.Pin5=PB10
-Mcu.Pin6=PB11
-Mcu.Pin7=PD11
-Mcu.Pin8=PD12
-Mcu.Pin9=VP_SYS_VS_Systick
-Mcu.PinsNb=10
+Mcu.Pin10=VP_SYS_VS_Systick
+Mcu.Pin2=PI11
+Mcu.Pin3=PH1-OSC_OUT (PH1)
+Mcu.Pin4=PH0-OSC_IN (PH0)
+Mcu.Pin5=PA0
+Mcu.Pin6=PB10
+Mcu.Pin7=PB11
+Mcu.Pin8=PD11
+Mcu.Pin9=PD12
+Mcu.PinsNb=11
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32H750XBHx
@@ -38,6 +39,8 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.UART4_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.USART3_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
PA0.Locked=true
PA0.Mode=Asynchronous
@@ -56,6 +59,8 @@ PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator
PH1-OSC_OUT\ (PH1).Signal=RCC_OSC_OUT
+PI11.Locked=true
+PI11.Signal=GPIO_Output
PI8.Locked=true
PI8.Signal=GPIO_Output
PI9.Locked=true
diff --git a/bsp/stm32/stm32h750-artpi-h750/board/Kconfig b/bsp/stm32/stm32h750-artpi-h750/board/Kconfig
index 18fc3b460397fd747f9556ea34f07c1c5fc8e6fd..2d07f8c8e3c24416431a9c75c5e62f4cb0d46016 100644
--- a/bsp/stm32/stm32h750-artpi-h750/board/Kconfig
+++ b/bsp/stm32/stm32h750-artpi-h750/board/Kconfig
@@ -10,7 +10,7 @@ config SOC_STM32H750XB
menu "Onboard Peripheral Drivers"
config BSP_USING_QSPI_FLASH
- bool "Enable QSPI FLASH (W25Q256)"
+ bool "Enable QSPI FLASH (W25Q64)"
select BSP_USING_QSPI
select RT_USING_SFUD
select RT_SFUD_USING_QSPI
@@ -29,8 +29,8 @@ menu "On-chip Peripheral Drivers"
default y
select RT_USING_SERIAL
if BSP_USING_UART
- config BSP_USING_UART1
- bool "Enable UART1"
+ config BSP_USING_UART3
+ bool "Enable UART3"
default y
config BSP_USING_UART4
diff --git a/bsp/stm32/stm32h750-artpi-h750/project.uvoptx b/bsp/stm32/stm32h750-artpi-h750/project.uvoptx
index 49a457794050741f8ad13d93ce30474a5b731616..32aea0646d2102f349a731b4eae1986441573be1 100644
--- a/bsp/stm32/stm32h750-artpi-h750/project.uvoptx
+++ b/bsp/stm32/stm32h750-artpi-h750/project.uvoptx
@@ -117,6 +117,26 @@
STLink\ST-LINKIII-KEIL_SWO.dll
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L70 -Z18 -C0 -M0 -T1
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(6017=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(6016=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+
+
+
+ 0
+ DLGUARM
+ (105=-1,-1,-1,-1,0)
+
0
UL2CM3
@@ -128,19 +148,159 @@
-U066BFF393732484257162540 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32H7x_128k -FS08000000 -FL020000
-
+
+
+ 0
+ 0
+ 516
+ 1
+ 134238434
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\libraries\HAL_Drivers\drv_usart.c
+
+ \\rt_thread\../libraries/HAL_Drivers/drv_usart.c\516
+
+
+ 1
+ 0
+ 105
+ 1
+ 134264914
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ applications\main.c
+
+ \\rt_thread\applications/main.c\105
+
+
+ 2
+ 0
+ 108
+ 1
+ 134262562
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\libraries\HAL_Drivers\drv_usart.c
+
+ \\rt_thread\../libraries/HAL_Drivers/drv_usart.c\108
+
+
+ 3
+ 0
+ 115
+ 1
+ 134262586
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\libraries\HAL_Drivers\drv_usart.c
+
+ \\rt_thread\../libraries/HAL_Drivers/drv_usart.c\115
+
+
+ 4
+ 0
+ 164
+ 1
+ 134262714
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\libraries\HAL_Drivers\drv_usart.c
+
+ \\rt_thread\../libraries/HAL_Drivers/drv_usart.c\164
+
+
+ 5
+ 0
+ 222
+ 1
+ 134262916
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\libraries\HAL_Drivers\drv_usart.c
+
+ \\rt_thread\../libraries/HAL_Drivers/drv_usart.c\222
+
+
+ 6
+ 0
+ 224
+ 1
+ 134262950
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\libraries\HAL_Drivers\drv_usart.c
+
+ \\rt_thread\../libraries/HAL_Drivers/drv_usart.c\224
+
+
+
+
+ 0
+ 1
+ uart
+
+
+ 1
+ 1
+ baud_rate
+
+
+ 2
+ 1
+ cfg->baud_rate,0x0A
+
+
+ 3
+ 1
+ huart
+
+
+ 4
+ 1
+ uart->handle
+
+
0
0
0
- 0
+ 1
0
0
0
0
- 0
+ 1
0
0
0
@@ -171,6 +331,12 @@
+
+
+ System Viewer\USART3
+ 35905
+
+
1
1
@@ -203,7 +369,7 @@
cpu
- 0
+ 1
0
0
0
@@ -479,7 +645,7 @@
finsh
- 0
+ 1
0
0
0
@@ -523,7 +689,7 @@
Kernel
- 0
+ 1
0
0
0
@@ -699,7 +865,7 @@
libc
- 0
+ 1
0
0
0
@@ -719,7 +885,7 @@
STM32_HAL
- 0
+ 1
0
0
0
diff --git a/bsp/stm32/stm32h750-artpi-h750/rtconfig.h b/bsp/stm32/stm32h750-artpi-h750/rtconfig.h
index af67cf3d40989e8e74841c6f832fc0a49864ed10..8d751712034ae1187fa3f14b0a275a9c16d68898 100644
--- a/bsp/stm32/stm32h750-artpi-h750/rtconfig.h
+++ b/bsp/stm32/stm32h750-artpi-h750/rtconfig.h
@@ -78,7 +78,6 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
-#define RT_SERIAL_USING_DMA
#define RT_SERIAL_RB_BUFSZ 64
#define RT_USING_PIN
@@ -153,7 +152,7 @@
/* Hardware Drivers Config */
-#define SOC_STM32H750IB
+#define SOC_STM32H750XB
/* Onboard Peripheral Drivers */
@@ -162,7 +161,7 @@
#define BSP_USING_GPIO
#define BSP_USING_UART
-#define BSP_USING_UART1
+#define BSP_USING_UART3
#define BSP_USING_UART4
/* Board extended module Drivers */