- 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;//接收数据完成
- }
- }
- }
复制代码 接受完第一次数据后,第二次就出问题了,接收不到了,总感觉是串口接收中断程序的问题,能帮忙看下吗
|