您好我的中断函数这么写可以吗,然后定义全局变量在主函数里判断
// 串口中断服务函数
void DEBUG_USART_IRQHandler(void)
{
if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET)
{
//--------------------以下为判断函数--------------
uartTemp=USART_ReceiveData(DEBUG_USARTx);
if(uartTemp==0xff)
{
i++;
}
if(uartTemp==0x00)
{
n++;
}
if(i==3)
{
a=(uartTemp<< 8)&0xFF00;
}
if(i==4)
{
b=(uartTemp&0xFF)|a;
}
}
}
以下是主函数
extern uint8_t uartTemp[10];
extern uint16_t a,b;
extern int n,i;
int main(void)
{ USART_Config();
LED_GPIO_Config();
BEEP_GPIO_Config();
while(1)
{ if((0x64<b&&b<0x2BC)||n==3)
{
BEEP( ON );
Delay(0x00000F);
LED_RGBOFF;
n=0;
i=0;
}
else
{
BEEP( OFF );
Delay(0x00000F);
LED_RED;
}
}
} |