void USART1_IRQHandler(void)
{
static u8 Receive=0;
static u8 IsMyCmd;
static u8 num ;
if(USART_GetITStatus(USART1, USART_IT_RXNE)!= RESET)
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
Receive= USART_ReceiveData(USART1);
//BB 02 22 00 10 34 00 E2 00 10 62 58 0C 00 65 11 80 9D E2 1D BB 7E
if(!IsMyCmd)
{
if(Receive==0xbb)
{
IsMyCmd=1;
num=0;
RxBuffer[0]=0xbb;
}
}
else
{
num++;
RxBuffer[num]= Receive;
if(num>4)
{
if (num==(RxBuffer[4]+5))
{
IsMyCmd=0;
if(Receive==0x7e)
{
RxFinishFlag=1;
USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
}
}
}
}
}}
|