From 78b01e42b514bd1f7fe5259edf7f4abafe2aec90 Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Wed, 10 Jun 2026 14:36:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9ioc=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 32g431.ioc | 9 ++++++--- Core/Inc/stm32g4xx_it.h | 1 + Core/Src/gpio.c | 11 ++++++++--- Core/Src/stm32g4xx_it.c | 15 +++++++++++++++ Core/Src/usart.c | 5 +++++ 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/32g431.ioc b/32g431.ioc index 0445142..0eaf9ef 100644 --- a/32g431.ioc +++ b/32g431.ioc @@ -80,6 +80,7 @@ NVIC.DMA1_Channel1_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.ForceEnableDMAVector=true NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.LPUART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false @@ -119,9 +120,10 @@ PA7.GPIOParameters=GPIO_Label PA7.GPIO_Label=K2 PA7.Locked=true PA7.Signal=GPIO_Output -PA8.GPIOParameters=GPIO_Label +PA8.GPIOParameters=PinState,GPIO_Label PA8.GPIO_Label=RS485_2_DIR PA8.Locked=true +PA8.PinState=GPIO_PIN_SET PA8.Signal=GPIO_Output PA9.Locked=true PA9.Mode=Asynchronous @@ -132,9 +134,10 @@ PB10.Signal=LPUART1_RX PB11.Locked=true PB11.Mode=Asynchronous PB11.Signal=LPUART1_TX -PB12.GPIOParameters=GPIO_Label +PB12.GPIOParameters=PinState,GPIO_Label PB12.GPIO_Label=RS485_1_DIR PB12.Locked=true +PB12.PinState=GPIO_PIN_SET PB12.Signal=GPIO_Output PB3.GPIOParameters=GPIO_Label PB3.GPIO_Label=LED3 @@ -189,7 +192,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_IWDG_Init-IWDG-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_TIM6_Init-TIM6-false-HAL-true,7-MX_FDCAN1_Init-FDCAN1-false-HAL-true,8-MX_LPUART1_UART_Init-LPUART1-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_IWDG_Init-IWDG-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_TIM6_Init-TIM6-false-HAL-true,7-MX_FDCAN1_Init-FDCAN1-false-HAL-true,8-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,9-MX_USART2_UART_Init-USART2-false-HAL-true RCC.ADC12Freq_Value=100000000 RCC.AHBFreq_Value=100000000 RCC.APB1Freq_Value=100000000 diff --git a/Core/Inc/stm32g4xx_it.h b/Core/Inc/stm32g4xx_it.h index 41f1298..ed17a7e 100644 --- a/Core/Inc/stm32g4xx_it.h +++ b/Core/Inc/stm32g4xx_it.h @@ -58,6 +58,7 @@ void SysTick_Handler(void); void DMA1_Channel1_IRQHandler(void); void USART1_IRQHandler(void); void TIM6_DAC_IRQHandler(void); +void LPUART1_IRQHandler(void); /* USER CODE BEGIN EFP */ /* USER CODE END EFP */ diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c index 1812f4c..f4346c0 100644 --- a/Core/Src/gpio.c +++ b/Core/Src/gpio.c @@ -51,14 +51,19 @@ void MX_GPIO_Init(void) __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOA, K4_Pin|K5_Pin|K1_Pin|K2_Pin - |RS485_2_DIR_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOA, K4_Pin|K5_Pin|K1_Pin|K2_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(K3_GPIO_Port, K3_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOB, RS485_1_DIR_Pin|LED3_Pin|LED2_Pin|LED1_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(RS485_1_DIR_GPIO_Port, RS485_1_DIR_Pin, GPIO_PIN_SET); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(RS485_2_DIR_GPIO_Port, RS485_2_DIR_Pin, GPIO_PIN_SET); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOB, LED3_Pin|LED2_Pin|LED1_Pin, GPIO_PIN_RESET); /*Configure GPIO pins : K4_Pin K5_Pin K1_Pin K2_Pin RS485_2_DIR_Pin */ diff --git a/Core/Src/stm32g4xx_it.c b/Core/Src/stm32g4xx_it.c index 507fcc2..6224442 100644 --- a/Core/Src/stm32g4xx_it.c +++ b/Core/Src/stm32g4xx_it.c @@ -56,6 +56,7 @@ /* External variables --------------------------------------------------------*/ extern DMA_HandleTypeDef hdma_usart1_tx; +extern UART_HandleTypeDef hlpuart1; extern UART_HandleTypeDef huart1; extern TIM_HandleTypeDef htim6; /* USER CODE BEGIN EV */ @@ -242,6 +243,20 @@ void TIM6_DAC_IRQHandler(void) /* USER CODE END TIM6_DAC_IRQn 1 */ } +/** + * @brief This function handles LPUART1 global interrupt. + */ +void LPUART1_IRQHandler(void) +{ + /* USER CODE BEGIN LPUART1_IRQn 0 */ + + /* USER CODE END LPUART1_IRQn 0 */ + HAL_UART_IRQHandler(&hlpuart1); + /* USER CODE BEGIN LPUART1_IRQn 1 */ + + /* USER CODE END LPUART1_IRQn 1 */ +} + /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ diff --git a/Core/Src/usart.c b/Core/Src/usart.c index 3621c13..f966816 100644 --- a/Core/Src/usart.c +++ b/Core/Src/usart.c @@ -196,6 +196,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + /* LPUART1 interrupt Init */ + HAL_NVIC_SetPriority(LPUART1_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(LPUART1_IRQn); /* USER CODE BEGIN LPUART1_MspInit 1 */ /* USER CODE END LPUART1_MspInit 1 */ @@ -308,6 +311,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) */ HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11); + /* LPUART1 interrupt Deinit */ + HAL_NVIC_DisableIRQ(LPUART1_IRQn); /* USER CODE BEGIN LPUART1_MspDeInit 1 */ /* USER CODE END LPUART1_MspDeInit 1 */