Browse Source

成功通过串口2接收,并通过串口1打印。

xuxinyi 3 months ago
parent
commit
af2725e51c
3 changed files with 9 additions and 2 deletions
  1. 5 0
      Core/Inc/main.h
  2. 1 1
      Core/Src/main.c
  3. 3 1
      Core/Src/stm32f1xx_it.c

+ 5 - 0
Core/Inc/main.h

@@ -60,6 +60,11 @@ void Error_Handler(void);
 
 /* USER CODE BEGIN Private defines */
 extern uint8_t rx_buf[500];
+extern  UART_HandleTypeDef huart1;
+extern UART_HandleTypeDef huart2;
+extern  UART_HandleTypeDef huart3;
+extern  DMA_HandleTypeDef hdma_usart2_rx;
+
 /* USER CODE END Private defines */
 
 #ifdef __cplusplus

+ 1 - 1
Core/Src/main.c

@@ -146,7 +146,7 @@ int main(void)
     // printf("%02X\r\n",i++);
     // printf("%d\r\n",strlen(msg));
     // HAL_UART_Transmit(&huart1, &i, 1, 100);
-    HAL_UART_Transmit(&huart1, rx_buf, strlen(rx_buf), 100);
+    // HAL_UART_Transmit(&huart1, rx_buf, strlen(rx_buf), 100);
     // i++;
     HAL_Delay(1000);
     /* USER CODE BEGIN 3 */

+ 3 - 1
Core/Src/stm32f1xx_it.c

@@ -20,6 +20,7 @@
 /* Includes ------------------------------------------------------------------*/
 #include "main.h"
 #include "stm32f1xx_it.h"
+#include "string.h"
 #include <stdio.h>
 /* Private includes ----------------------------------------------------------*/
 /* USER CODE BEGIN Includes */
@@ -247,7 +248,8 @@ void USART2_IRQHandler(void)
 
     uint32_t received_len = sizeof(rx_buf) - __HAL_DMA_GET_COUNTER(huart2.hdmarx);
     // printf("Received %lu bytes: %.*s\r\n", received_len, (int)received_len, rx_buf);
-
+    HAL_UART_Transmit(&huart1, rx_buf, received_len, 100);
+    memset(rx_buf, 0, sizeof(rx_buf));
     HAL_UART_Receive_DMA(&huart2, rx_buf, sizeof(rx_buf)); // 重新启动
   }
   /* USER CODE END USART2_IRQn 1 */