Ver código fonte

测试接收lora的success成功。添加蓝牙模块的采集速度成功。

xuxinyi 3 meses atrás
pai
commit
361ae72d72
2 arquivos alterados com 22 adições e 1 exclusões
  1. 21 0
      Core/Src/main.c
  2. 1 1
      Core/Src/stm32f1xx_it.c

+ 21 - 0
Core/Src/main.c

@@ -48,6 +48,7 @@ DMA_HandleTypeDef hdma_usart3_rx;
 /* USER CODE BEGIN PV */
 uint8_t rx_buf[100] = {0};
 uint8_t totalData[30][100] = {0};
+uint8_t uart2_rx_byte[10] = {0};
 /* USER CODE END PV */
 
 /* Private function prototypes -----------------------------------------------*/
@@ -123,6 +124,7 @@ int main(void)
   /* USER CODE BEGIN 2 */
   // 启动 USART2 DMA 接收
   HAL_UART_Receive_DMA(&huart3, rx_buf, sizeof(rx_buf));
+  HAL_UART_Receive_IT(&huart2, uart2_rx_byte, 7);
   // 使能 USART2 空闲中断
   __HAL_UART_ENABLE_IT(&huart3, UART_IT_IDLE);
 
@@ -131,6 +133,13 @@ int main(void)
   const char *msg = "AT+ROLE=2";
   HAL_UART_Transmit(&huart3, (uint8_t *)msg, strlen(msg), HAL_MAX_DELAY);
 
+
+  const char *msg1 = "AT+SCANINTV=160";
+  HAL_UART_Transmit(&huart3, (uint8_t *)msg1, strlen(msg1), HAL_MAX_DELAY);
+
+  const char *msg2 = "AT+RESET";
+  HAL_UART_Transmit(&huart3, (uint8_t *)msg2, strlen(msg2), HAL_MAX_DELAY);
+
   const char *lora_msg = "AT+OPTION=3,0";
   HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg, strlen(lora_msg), HAL_MAX_DELAY);
   // uint8_t i = 0xaa;
@@ -163,6 +172,7 @@ int main(void)
   /* USER CODE END 3 */
 }
 
+
 /**
   * @brief System Clock Configuration
   * @retval None
@@ -339,6 +349,17 @@ static void MX_GPIO_Init(void)
 }
 
 /* USER CODE BEGIN 4 */
+void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
+{
+  if (huart->Instance == USART2) // 判断是USART2
+  {
+    // 这里处理接收到的数据,例如打印出来
+    printf("USART2 Received: %s\r\n", uart2_rx_byte);
+
+    // 继续接收下一个字节
+    HAL_UART_Receive_IT(&huart2, uart2_rx_byte, 1);
+  }
+}
 
 /* USER CODE END 4 */
 

+ 1 - 1
Core/Src/stm32f1xx_it.c

@@ -274,7 +274,7 @@ void USART3_IRQHandler(void)
     // }else {
     //   printf("数据接收完毕");
     // }
-    HAL_UART_Transmit(&huart2, rx_buf, received_len, HAL_MAX_DELAY);
+    HAL_UART_Transmit(&huart2, rx_buf, 8, HAL_MAX_DELAY);
     memset(rx_buf, 0, sizeof(rx_buf));
     HAL_UART_Receive_DMA(&huart3, rx_buf, sizeof(rx_buf)); // 重新启动
   }