打印
[AVR单片机]

查询方式接收字符串问题。

[复制链接]
1081|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下面那个

使用特权

评论回复
5
anchoret|  楼主 | 2013-5-22 07:29 | 只看该作者
本帖最后由 anchoret 于 2013-5-22 07:37 编辑

哦,那个是有点问题,谢谢!:P

使用特权

评论回复
6
qin552011373| | 2013-5-22 22:33 | 只看该作者
错过给分了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

47

帖子

0

粉丝