#define UART1_RBUF_Size 4096 //
u16 UART1_RX_ph; //
u16 UART1_RX_pe; //
u16 UART1_RX_buf_full; //
u8 UART1_RX_BUF[UART1_RBUF_Size] ; //
//***************************串口1接收环形队列*******************************
void USART1_IRQHandler(void) //
{
u8 Res;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE); //
Res = USART_ReceiveData(USART1);
if(((UART1_RX_ph-UART1_RX_pe)&(UART1_RBUF_Size-1)) == (UART1_RBUF_Size-1))
{
UART1_RX_buf_full = 1;
USART_ITConfig(USART1, USART_IT_RXNE, DISABLE); //
}
else
{
UART1_RX_BUF[UART1_RX_ph] = Res;
UART1_RX_ph++;
UART1_RX_ph &= (UART1_RBUF_Size-1);
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>