STM32 探索者 485通信实验 发送代码那一段

2019-07-20 23:29发布

void RS485_send_Data(u8 *buf,u8 len){

       u8 t;
       RS485_TX_EN=1;
       for(t=0;t<len;t++)
       {
           while(USART _GetFlagStatus(USART2,USART_FLAG_TC)==RESET);//等待发送结束

           USART_SendData(USART2,buf[t]);//发送数据

       }

       while(USART _GetFlagStatus(USART2,USART_FLAG_TC)==RESET);//等待发送结束   
       RS485_TX_EN=0;
       RS485_RX_CNT=0;
}

前提条件:
RESET的值为0;未使能TXEIE;
*buf=rs485buf[5]={1,2,3,4,5}



程序上电初始化完成的时候, 仿真器监测 TC标志位、TE标志位的值均为1。在整个程序中也没有把TC标志位清0的语句;
请问 while(USART _GetFlagStatus(USART2,USART_FLAG_TC)==RESET);这行代码是不是可以删掉不要了。




还有就是为什么上电初始化完成 TC标志是置1,TE标志也置1;

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。