初级会员

- 积分
- 147
- 金钱
- 147
- 注册时间
- 2015-11-11
- 在线时间
- 29 小时
|
1金钱
[mw_shl_code=c,true]if(USART_RX_STA&0x8000)//即bit15为1,字符接收完成,自动放在了USART_RX_BUF里面
{
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
printf("\r\n您发送的消息为:\r\n\r\n");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
printf("\r\n\r\n");//插入换行
USART_RX_STA=0;[/mw_shl_code]
其中,while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);!=不应该是==号码,不然在发送过程还没发完就
会卡在while里面出不来了吧?可能我理解有误,求解答!
|
最佳答案
查看完整内容[请看2#楼]
如果发送未完成,USART_GetFlagStatus( )的返回值就是0,while循环判断条件成立,就一直循环等待;如果发送完成,标志位置位,函数返回1,则循环条件不成立,于是退出while,应该是这样的吧
|