下边是终端函数的:
void USART1_IRQHandler(void)
{
static vu8 tmp;
if(USART_GetITStatus(USART1, USART_IT_RXNE)!=RESET)
{
if(USART1_RecvSta!=USART_RECVSTA_RUN)
{
tmp=USART_ReceiveData(USART1);
return;
}
if(USART1_RxCount>0)
{
*pUSART1_RxBuff++ = USART_ReceiveData(USART1);
USART1_RxCount--;
}
if(USART1_RxCount<=0)
{ /* Disable the USART1 Receive interrupt */
USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
USART1_RecvSta=USART_RECVSTA_SUCC;
//USART_Cmd(USART1, DISABLE);
}
}
if((USART1_SendSta==USART_SENDSTA_RUN)&&(USART_GetITStatus(USART1, USART_IT_TXE) != RESET))//if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)
{
if(USART1_TxCount>0)
{
USART_SendData(USART1, *pUSART1_TxBuff++);
USART1_TxCount--;
if(USART1_TxCount<=0)
{
/* Disable the USART1 Transmit interrupt */
USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
USART1_SendSta=USART_SENDSTA_SUCC;
}
}
}
}
注意发送数据部分的
USART_SendData(USART1, *pUSART1_TxBuff++);
|