|
void USARTx_IRQHandler(void)
{
/* 处理接收中断 */
if (USART_GetITStatus(USARTx, USART_IT_RXNE) == SET)
{
if (ubRxIndex < BUFFERSIZE)
{
/* 接收数据 */
aRxBuffer[ubRxIndex++] = USART_ReceiveData(USARTx);
}
else
{
/* 禁止接收中断 */
USART_ITConfig(USARTx, USART_IT_RXNE, DISABLE);
}
}
/* 处理发送缓冲区空中断 */
if (USART_GetITStatus(USARTx, USART_IT_TXE) == SET)
{
if (ubTxIndex < BUFFERSIZE)
{
/* 发送数据 */
USART_SendData(USARTx, aTxBuffer[ubTxIndex++]);
}
else
{
/* 禁止发送缓冲区空中断 */
USART_ITConfig(USARTx, USART_IT_TXE, DISABLE);
}
}
} |
|