|
|
@@ -373,10 +373,42 @@ static void MX_GPIO_Init(void)
|
|
|
void StartDefaultTask(void *argument)
|
|
|
{
|
|
|
/* USER CODE BEGIN 5 */
|
|
|
+ uint8_t rx_data; // 用于存储接收的数据
|
|
|
+ HAL_StatusTypeDef rx_status; // 用于存储接收操作的状态
|
|
|
+
|
|
|
/* Infinite loop */
|
|
|
for(;;)
|
|
|
{
|
|
|
+ // 发送字符串到UART2
|
|
|
printf("hello world task 1\r\n");
|
|
|
+
|
|
|
+ // 发送一个换行符(0x0a)到UART2
|
|
|
+ uint8_t c = 0x0a;
|
|
|
+ HAL_UART_Transmit(&huart2, &c, 1, HAL_MAX_DELAY);
|
|
|
+
|
|
|
+ // 从UART2接收一个字节,超时时间设置为100ms
|
|
|
+ rx_status = HAL_UART_Receive(&huart2, &rx_data, 1, 100);
|
|
|
+
|
|
|
+ // 检查接收状态并处理
|
|
|
+ if (rx_status == HAL_OK)
|
|
|
+ {
|
|
|
+ // 接收成功,可以在这里处理接收到的数据
|
|
|
+ // 例如: 回显接收到的数据
|
|
|
+ // HAL_UART_Transmit(&huart2, &rx_data, 1, HAL_MAX_DELAY);
|
|
|
+ printf("rx_status = %02x\r\n",rx_data);
|
|
|
+ }
|
|
|
+ else if (rx_status == HAL_TIMEOUT)
|
|
|
+ {
|
|
|
+ // 接收超时,可以根据需要处理
|
|
|
+ printf("UART receive timeout\r\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 其他错误情况
|
|
|
+ printf("UART receive error\r\n");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 延时1秒
|
|
|
osDelay(1000);
|
|
|
}
|
|
|
/* USER CODE END 5 */
|
|
|
@@ -396,7 +428,7 @@ void StartTask02(void *argument)
|
|
|
for(;;)
|
|
|
{
|
|
|
printf("hello world task 2\r\n");
|
|
|
- osDelay(1000);
|
|
|
+ osDelay(10000000);
|
|
|
}
|
|
|
/* USER CODE END StartTask02 */
|
|
|
}
|
|
|
@@ -415,7 +447,7 @@ void StartTask03(void *argument)
|
|
|
for(;;)
|
|
|
{
|
|
|
printf("hello world task 3\r\n");
|
|
|
- osDelay(1000);
|
|
|
+ osDelay(1000000);
|
|
|
}
|
|
|
/* USER CODE END StartTask03 */
|
|
|
}
|