void USART2_IRQHandler(void) //串口2中断服务程序
{
u8 Res;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断
{
Res=USART_ReceiveData(USART2); //读取接收到的数据
if((USART2_RX_STA&0x8000)==0) //接收未完成
{
USART2_RX_BUF[USART2_RX_STA]=Res;//读取接收到的数据
USART2_RX_STA++;
if(USART2_RX_STA>14) //接收到了15个数据
USART2_RX_STA|=0x8000;//接收数据完成
}
}
}
接受完第一次数据后,第二次就出问题了,接收不到了,总感觉是串口接收中断程序的问题,能帮忙看下吗
|