flykate 发表于 2008-2-20 16:38:44

以串口查询方式接收字符串遇到的问题。

编了一个以串口查询方式接收字符串的小程序,程序需要判断这个字符串的第一个字符是不是$,如果是的话,继续接收以下的字符,直到收满全部的字符,并存储在数组里。如果不是$,继续查询。


在硬件调试过程中发现,如果我只发$,程序可以收到$,但是如果我把$后边的字符也一起发送的话,数组里就没有存储任何字符(除$外)。
这是怎么会事呢?

大家先帮我分析下,我现在没有U盘,我随后把程序发上来。

flykate 发表于 2008-2-20 16:42:47

brate 是4800,晶振是7.3728

flykate 发表于 2008-2-20 17:39:44

while(1)
{               
/*开始接收GPS数据*/
loop: USART_Receive0();
if(UDR0!=0x24){goto loop;}   
gpsdata=UDR0;            /*把$存起来*/

for(i=1;i<=82;i++);      /*开始接收定位数据$GPGGA后边的*/
{
USART_Receive0();
gpsdata=UDR0;
}
/*数据接收结束*/
//send//
               
for(i1=7;i1<=45;i1++)
{
USART_Transmit1(gpsdata);
delay_ms(150);
}
PORTC=0x07;      //0000,0000led on
delay_ms(300);
PORTC=0x00;       //0000,0111   led off




PORTA=0x00;       //0000,0000   bell_on   
delay_ms(300);            
PORTA=0x04;       //0000,0100   bell_off

}
}

flykate 发表于 2008-2-20 17:43:54

.
页: [1]
查看完整版本: 以串口查询方式接收字符串遇到的问题。