初级会员

- 积分
- 76
- 金钱
- 76
- 注册时间
- 2014-7-24
- 在线时间
- 1 小时
|
5金钱
在这里受到不少帮助,今天又遇到问题了,特来请教下!先谢过了!
我通过串口二连接某传感器,传感器会发生一系列数据回来。我把收到的数据通过串口一显示的同时,对其进行了处理,可为什么收到第一个数据( Res=165(0xA5) )后,第二个数据就不能收到了呢?如图所示:
我是通过传感器发给Res,之后通过for语句来判断Res是否为我想要的,但是他一直在判断收到的第一个Res,无法更新Res,我找不到原因,因为我清空了标志位的!
/*************************************以下是部分中断程序***********************************************/
u8 i=0,j=0,k=0,m=0,med=0;
void USART2_IRQHandler(void)
{
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
USART_ClearITPendingBit(USART2,USART_IT_RXNE);
printf("*****NEW data****");
Res2 =USART_ReceiveData(USART2);//(USART2->DR);
printf("Res2=%d",Res2);
/*******数据处理*********/
loop: for(i;i<2;i++)
{ printf("Res2=%d",Res2);
begin=Res2;
printf("begin[");
printf("%d",i);
printf("]=");
printf("%d\n",begin);
break;
}
if((begin[0]-0xA5)==0)
{
if((begin[1]-0x5A) ==0)
{
printf("检测到起始头数据");
}
else {i=1; goto loop;}
}
else { i=0; goto loop; }
|
|