[AVR单片机] 查询方式接收字符串问题。

[复制链接]
1778|5
 楼主| anchoret 发表于 2013-5-21 07:30 | 显示全部楼层 |阅读模式
本帖最后由 anchoret 于 2013-5-21 21:03 编辑

我采用查询方式接收字符串,可每次只能接收到第一个字符,帮我看看怎么回事,谢谢!
unsigned int USART0_Rec( unsigned char *buf )
{
         unsigned int i;
         unsigned long int time;
         i = 0;
         time = 0;
         /* Wait for the first data to be received*/
         while(!( UCSR0A & (1<<RXC0)))
         ;
         buf i= UDR0;
         while(!( UCSR0A & (1<<UDRE0)))    //等待读空,去掉也不行
        ;
         i++;
         do
         {
                 while(!( UCSR0A & (1<<RXC0)))
                 {
                         buf i= UDR0;
                         while(!( UCSR0A & (1<<UDRE0))) //等待读空,去掉也不行
                        ;
                         i++;
                 }
                 time++;
         } while (time <= 5000000);
         
         return i;
}
huangxz 发表于 2013-5-21 19:09 | 显示全部楼层
逻辑有错吧,你那个while应该改成if
 楼主| anchoret 发表于 2013-5-21 21:03 | 显示全部楼层
哪个while?
huangxz 发表于 2013-5-21 21:21 | 显示全部楼层
do下面那个
 楼主| anchoret 发表于 2013-5-22 07:29 | 显示全部楼层
本帖最后由 anchoret 于 2013-5-22 07:37 编辑

哦,那个是有点问题,谢谢!:P
qin552011373 发表于 2013-5-22 22:33 | 显示全部楼层
错过给分了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

47

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部