中级会员
 
- 积分
- 278
- 金钱
- 278
- 注册时间
- 2016-9-13
- 在线时间
- 73 小时
|
5金钱
判断标志位,如果接受到数据,则把数据给ch,然后输出 “你输入的是。。。”,
调试过程中发现,输入多个字符的时候,比如abcd,只有前两个数据可以正常输出,你输入的是a 你输入的是b你输入的是a 你输入的是b ;
输入1个字符的时候,没有数据显示,只有 你输入的是(空格) 你输入的是(空格)
这种功能不用中断就做不了吗?谢谢
[mw_shl_code=c,true]/* 如果USART2的接收标志位不为0,即已经接收到数据 */
if(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)!=RESET)
{
USART_ClearFlag(USART2,USART_FLAG_RXNE);
/* 将USART2接收到的数据放入变量ch缓存 */
ch=USART_ReceiveData(USART2);
printf("你输入的是");
/* 把ch的内容,通过USART2发送 */
USART_SendData(USART2,ch);
while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==0);
USART_SendData(USART2,'\r');
while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==0);
USART_SendData(USART2,'\n');
while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==0);
}[/mw_shl_code]
|
|