初级会员

- 积分
- 193
- 金钱
- 193
- 注册时间
- 2014-10-18
- 在线时间
- 1 小时
|

楼主 |
发表于 2014-11-19 22:15:39
|
显示全部楼层
回复【7楼】正点原子:
---------------------------------
我写出来了,就是几个if语句,我在你们的程序上修改的,但是现在有一个错误,我真的没有任何思路去解决她,就是GOFF,或者ROFF等四位的数据后,就接收不到GON,RON等三位的数据。反过来,先发三位的,再发四位的是能够正常接收的。不知道是什么原因,能不能给个思路,谢谢
while(1)
{
if(USART_RX_STA&0x8000) //?????ê??
{
len=USART_RX_STA&0x3FFF;//???????????????????¤??
printf("\r\n?ú·???????????:\r\n\r\n");
////?¨??for???·??°??????????????????????ú????
for(t=0;t<len;t++)
{
USART1->DR=USART_RX_BUF[t];
while((USART1->SR&0X40)==0);//????·????á??
}
printf("\r\n\r\n");///????????
if((USART_RX_BUF[0]=='G')&&(USART_RX_BUF[1]=='O')&&(USART_RX_BUF[2]=='N')&&(USART_RX_BUF[3]=='\0'))
{
GON;
printf("??????");
}else
if((USART_RX_BUF[0]=='G')&&(USART_RX_BUF[1]=='O')&&(USART_RX_BUF[2]=='F')&&(USART_RX_BUF[3]=='F')&&(USART_RX_BUF[4]=='\0'))
{
GOFF;
printf("????????????");
}else
if((USART_RX_BUF[0]=='R')&&(USART_RX_BUF[1]=='O')&&(USART_RX_BUF[2]=='N')&&(USART_RX_BUF[3]=='\0'))
{
RON;
printf("?ì????");
}else
if((USART_RX_BUF[0]=='R')&&(USART_RX_BUF[1]=='O')&&(USART_RX_BUF[2]=='F')&&(USART_RX_BUF[3]=='F')&&(USART_RX_BUF[4]=='\0'))
{
ROFF;
printf("?ì??????????\r\n");
}else
if((USART_RX_BUF[0]=='H')&&(USART_RX_BUF[1]=='E')&&(USART_RX_BUF[2]=='L')&&(USART_RX_BUF[3]=='P')&&(USART_RX_BUF[4]=='\0'))
{
BEEP=!BEEP;
printf("/*/*/*/*HELP Information*/*/*/*/*/*/\r\n");
printf("\"GON\"??????\r\n");
printf("\"RON\"?ì????\r\n");
printf("\"GOFF\"??????\r\n");
printf("\"ROFF\"?ì????\r\n");
printf("\"HELP\"????°??ú????\r\n");
printf("/*/*/*/*/*END Information*/*/*/*/*/*/\r\n");
}else
{
printf("ERROR Command!!\r\n");
printf(" lease Input \"HELP\"For More Infoemation!!\r\n");
}
USART_RX_STA=0;
}else
{
times++;
if(times%50000==0)
{
printf("\r\nPlease Input Command!\r\n");
}
delay_ms(10);
}
} |
|