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;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>