求问关于串口SendData问题

2019-10-15 05:08发布

[mw_shl_code=c,true]void Send485_humiture()
{
        u8 temp,humi,i;
        u8 buf[5];
        dht11_read_data(&temp,&humi);
        GPIO_SetBits(GPIOA,GPIO_Pin_11);//send mode
        delay_ms(2);
        USART_ClearFlag(USART1,USART_FLAG_TC);
        buf[0]=0x55;
        buf[1]=0x09;
        buf[2]=temp;
        buf[3]=humi;
        buf[4]=buf[0]+buf[1]+buf[2]+buf[3];
//        for(i=0;i<5;i++)
//        {
//                USART_SendData(USART1, buf);
        //}
        USART_SendData(USART1, buf[0]);
        while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
        USART_SendData(USART1, buf[1]);
        while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
        USART_SendData(USART1, buf[2]);
        while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
        USART_SendData(USART1, buf[3]);
        while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
        USART_SendData(USART1, buf[4]);
        while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
        GPIO_ResetBits(GPIOA,GPIO_Pin_11);//read mode
        delay_ms(2);
       
}[/mw_shl_code]

我若用FOR循环SendData的话  通过485转换至电脑串口调试助手就是乱码  但是我如果像代码一样一行一行输出的话  就是正常的为什么啊?不是很理解  难道不是一样的吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。