/**************** USART1中断处理函数******************/
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE)!= RESET)
{
if(Rx_Counter<64)
{
Rx_buffer[Rx_Counter++]=USART_ReceiveData(USART1); //接收一字节数据存入数组中
}
}
else if(USART_GetITStatus(USART1,USART_IT_IDLE)!= RESET)
{
USART_ReceiveData(USART1); //此处一定要有,这是用于清除IDLE空闲标志位的
USART_ClearFlag(USART1,USART_FLAG_IDLE);
Rx_Fin=1; //接收完一帧数据标志
}
}
int main()
{
while(1)
{
if(Rx_Fin==1)
{
Usart_SendArray(USART1,Rx_buffer,Rx_Counter);
Rx_Fin=0;
Rx_Counter=0;
}
}
}
/**************** USART1中断处理函数******************/
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE)!= RESET)
{
if(Rx_Counter<64)
{
Rx_buffer[Rx_Counter++]=USART_ReceiveData(USART1); //接收一字节数据存入数组中
}
}
else if(USART_GetITStatus(USART1,USART_IT_IDLE)!= RESET)
{
USART_ReceiveData(USART1); //此处一定要有,这是用于清除IDLE空闲标志位的
USART_ClearFlag(USART1,USART_FLAG_IDLE);
Rx_Fin=1; //接收完一帧数据标志
}
}
int main()
{
while(1)
{
if(Rx_Fin==1)
{
Usart_SendArray(USART1,Rx_buffer,Rx_Counter);
Rx_Fin=0;
Rx_Counter=0;
}
}
}
举报