初级会员

- 积分
- 123
- 金钱
- 123
- 注册时间
- 2013-7-20
- 在线时间
- 0 小时
|
大家帮忙看下为什么不执行中断中的函数????直接跳过了Motor();
/*串口1中断服务程序*/
void USART1_IRQHandler(void)
{
// if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //若接收数据寄存器满
// {
// USART_SendData(USART1, USART_ReceiveData(USART1)); //回发给PC
// while(USART_GetFlagStatus(USART1, USART_IT_TXE)==RESET);//等待发完(检验发送数据寄存器空标志位,空则置1)
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
switch(i)
{
case 1:{
dir1=USART_ReceiveData(USART1);
i++;
break;
}
case 2:{
dir2=USART_ReceiveData(USART1);
i++;
break;
}
case 3:{
left[0]=USART_ReceiveData(USART1);
i++;
break;
}
case 4:{
left[1]=USART_ReceiveData(USART1);
i++;
break;
}
case 5: {
left[2]=USART_ReceiveData(USART1);
i++;
speed1=(left[0]-48)*100+(left[1]-48)*10+(left[2]-48);
break;
}
case 6:{
right[0]=USART_ReceiveData(USART1);
i++;
break;
}
case 7:{
right[1]=USART_ReceiveData(USART1);
i++;
break;
}
case 8:{
right[2]=USART_ReceiveData(USART1);
speed2=(right[0]-48)*100+(right[1]-48)*10+(right[2]-48);
i=1;
Motor(dir1,dir2,speed1,speed2);
break;
}
}
}
|
|