void USART2_IRQHandler() {
if (USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(USART2, USART_IT_RXNE);
Uart2_Buffer[Uart2_Rx] = USART_ReceiveData(USART2);
Uart2_Rx++;
Uart2_Rx &= 0xFF;
}
if (Uart2_Buffer[Uart2_Rx - 1] == 0x5A)
Uart2_Tx = Uart2_Rx - 1;
if ((Uart2_Buffer[Uart2_Tx] == 0x5A) && (Uart2_Buffer[Uart2_Rx - 1] == 0xA5))
{
Uart2_Len = Uart2_Rx - 1 - Uart2_Tx;
Uart2_Sta = 1;
}
if (USART_GetFlagStatus(USART2, USART_FLAG_ORE) == SET)
{
USART_ClearFlag(USART2, USART_FLAG_ORE);
USART_ReceiveData(USART2);
}
}
int timer_100ms(void) {
if (Uart2_Sta) {
for (tx2 = 0; tx2 <= Uart2_Len; tx2++, Uart2_Tx++)
USART2_SendByte(Uart2_Buffer[Uart2_Tx]);
Uart2_Rx = 0;
Uart2_Tx = 0;
Uart2_Sta = 0;
}
return 0;
}