新手入门 
 
	- 积分
 - 17
 
        - 金钱
 - 17 
 
       - 注册时间
 - 2023-2-1
 
      - 在线时间
 - 2 小时
 
 
 
 | 
 
1金钱 
 我写了一个代码关于uart串口通讯的,主要是红字部分,是一个读数据的功能  , 
 
我在用串口助手发的时候发现一个问题 
 
我在watch窗口中观察numbuffer数组的数据变化情况,我发现有几个数是一起读的,剩余的是一个个读的 
 
比如我发了2222222222222222222222222222 
 
有可能numbuffer[0]到numbuffer[12]是一瞬间都写了0x32'2',剩余的numbuffer[13]到numbuffer[20]是一个个慢慢写入0x32'2' 
 
我想问一下大佬们,这是为什么 
 
 while (1) 
    { 
        /* USER CODE END WHILE */ 
        for (int x=0; x<=20; x++) 
        { 
            HAL_UART_Receive(&huart1,&t,1,1000); 
            numbuffer[x-1] = t; 
        } 
//            HAL_UART_Receive(&huart1,&numbuffer,1,1000); 
        if(numbuffer[2]==2) 
            HAL_GPIO_WritePin(Out1_GPIO_Port,Out1_Pin,GPIO_PIN_SET); 
        else 
            HAL_GPIO_WritePin(Out1_GPIO_Port,Out1_Pin,GPIO_PIN_RESET); 
//        if(Exti1_flag==1) 
//            printf("OK\n"); 
//        else if (Exti1_flag==0) 
//            printf("NG\n"); 
//        Usart_SendString(numbuffer); 
        printf("AAAAAAAAAAAAA\n"); 
        HAL_Delay(1000); 
        /* USER CODE BEGIN 3 */ 
    } 
 
 
 |   
 
 
 
 
 
 |